dm: Make regmap and syscon optional
authorSimon Glass <sjg@chromium.org>
Fri, 17 Jul 2015 15:22:07 +0000 (09:22 -0600)
committerSimon Glass <sjg@chromium.org>
Thu, 6 Aug 2015 13:31:36 +0000 (07:31 -0600)
Not all boards use garbage collection in their link step, so we should avoid
adding options that rely on this for prevention of code bloat. Add separate
Kconfig options for syscon and regmap uclasses.

Signed-off-by: Simon Glass <sjg@chromium.org>
configs/sandbox_defconfig
drivers/core/Kconfig
drivers/core/Makefile

index 553574682dcd165d06e892e321fda110725f0554..e6a45904d0ca6dd6e3a96c29e466cf5eea7a94c6 100644 (file)
@@ -52,3 +52,4 @@ CONFIG_DM_MMC=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_SYSCON=y
+CONFIG_REGMAP=y
index e40372dd753c9c6e140d6037c3189bc824818b66..5d0e949f05de670978256537ed62d124cb0e6984 100644 (file)
@@ -59,3 +59,22 @@ config DM_SEQ_ALIAS
          Most boards will have a '/aliases' node containing the path to
          numbered devices (e.g. serial0 = &serial0). This feature can be
          disabled if it is not required, to save code space in SPL.
+
+config REGMAP
+       bool "Support register maps"
+       depends on DM
+       help
+         Hardware peripherals tend to have one or more sets of registers
+         which can be accessed to control the hardware. A register map
+         models this with a simple read/write interface. It can in principle
+         support any bus type (I2C, SPI) but so far this only supports
+         direct memory access.
+
+config SYSCON
+       bool "Support system controllers"
+       depends on REGMAP
+       help
+         Many SoCs have a number of system controllers which are dealt with
+         as a group by a single driver. Some common functionality is provided
+         by this uclass, including accessing registers via regmap and
+         assigning a unique number to each.
index 5c2ead870b00412bf0ebc5532a21b4ebdfd82974..ce3027a8512d54a1bfd983b2612985204f4dc937 100644 (file)
@@ -10,5 +10,5 @@ obj-$(CONFIG_OF_CONTROL) += simple-bus.o
 endif
 obj-$(CONFIG_DM_DEVICE_REMOVE) += device-remove.o
 obj-$(CONFIG_DM)       += dump.o
-obj-$(CONFIG_OF_CONTROL)       += regmap.o
-obj-$(CONFIG_OF_CONTROL)       += syscon-uclass.o
+obj-$(CONFIG_REGMAP)   += regmap.o
+obj-$(CONFIG_SYSCON)   += syscon-uclass.o