Commit b33cdd28 authored by Arnd Bergmann's avatar Arnd Bergmann

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: default avatarArnd Bergmann <arnd@arndb.de>
parent 5a3babfc
...@@ -18,6 +18,8 @@ config ARCH_VEXPRESS ...@@ -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,
......
...@@ -46,6 +46,7 @@ config VEXPRESS_CONFIG ...@@ -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.
......
...@@ -118,7 +118,7 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev) ...@@ -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)
......
...@@ -194,7 +194,7 @@ config CLKSRC_QCOM ...@@ -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
......
...@@ -1229,7 +1229,7 @@ endmenu ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment