ARM: vexpress: refine dependencies for new code

The versatile express changes for 3.16 introduced a number of
build regressions for randconfig kernels by not tracking dependencies
between the components right.

This patch tries to rectify that:

* the mach-vexpress code cannot link without the syscfg driver,
  which in turn needs MFD_VEXPRESS_SYSREG
* various drivers call devm_regmap_init_vexpress_config(), which
  has to be exported so it can be used by loadable modules
* the configuration bus uses OF DT helper functions that are not
  available to platforms disable CONFIG_OF
* The sysreg driver exports GPIOs through gpiolib, which can
  be disabled on some platforms.
* The clocksource code cannot be built on platforms that don't
  use modern timekeeping but rely on gettimeoffset.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2014-05-26 17:25:22 +02:00
parent 5a3babfcd2
commit b33cdd283b
5 changed files with 6 additions and 3 deletions

View File

@ -18,6 +18,8 @@ config ARCH_VEXPRESS
select POWER_SUPPLY select POWER_SUPPLY
select REGULATOR_FIXED_VOLTAGE if REGULATOR select REGULATOR_FIXED_VOLTAGE if REGULATOR
select VEXPRESS_CONFIG select VEXPRESS_CONFIG
select VEXPRESS_SYSCFG
select MFD_VEXPRESS_SYSREG
help help
This option enables support for systems using Cortex processor based This option enables support for systems using Cortex processor based
ARM core and logic (FPGA) tiles on the Versatile Express motherboard, ARM core and logic (FPGA) tiles on the Versatile Express motherboard,

View File

@ -46,6 +46,7 @@ config VEXPRESS_CONFIG
bool "Versatile Express configuration bus" bool "Versatile Express configuration bus"
default y if ARCH_VEXPRESS default y if ARCH_VEXPRESS
depends on ARM || ARM64 depends on ARM || ARM64
depends on OF
select REGMAP select REGMAP
help help
Platform configuration infrastructure for the ARM Ltd. Platform configuration infrastructure for the ARM Ltd.

View File

@ -118,7 +118,7 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev)
return regmap; return regmap;
} }
EXPORT_SYMBOL_GPL(devm_regmap_init_vexpress_config);
struct device *vexpress_config_bridge_register(struct device *parent, struct device *vexpress_config_bridge_register(struct device *parent,
struct vexpress_config_bridge_ops *ops, void *context) struct vexpress_config_bridge_ops *ops, void *context)

View File

@ -194,7 +194,7 @@ config CLKSRC_QCOM
config CLKSRC_VERSATILE config CLKSRC_VERSATILE
bool "ARM Versatile (Express) reference platforms clock source" bool "ARM Versatile (Express) reference platforms clock source"
depends on GENERIC_SCHED_CLOCK depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
select CLKSRC_OF select CLKSRC_OF
default y if MFD_VEXPRESS_SYSREG default y if MFD_VEXPRESS_SYSREG
help help

View File

@ -1229,7 +1229,7 @@ endmenu
config MFD_VEXPRESS_SYSREG config MFD_VEXPRESS_SYSREG
bool "Versatile Express System Registers" bool "Versatile Express System Registers"
depends on VEXPRESS_CONFIG depends on VEXPRESS_CONFIG && GPIOLIB
default y default y
select CLKSRC_MMIO select CLKSRC_MMIO
select GPIO_GENERIC_PLATFORM select GPIO_GENERIC_PLATFORM