Pārlūkot izejas kodu

dm: Make regmap and syscon optional

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>
Simon Glass 10 gadi atpakaļ
vecāks
revīzija
12dc8e7522
3 mainītis faili ar 22 papildinājumiem un 2 dzēšanām
  1. 1 0
      configs/sandbox_defconfig
  2. 19 0
      drivers/core/Kconfig
  3. 2 2
      drivers/core/Makefile

+ 1 - 0
configs/sandbox_defconfig

@@ -52,3 +52,4 @@ CONFIG_DM_MMC=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_SYSCON=y
+CONFIG_REGMAP=y

+ 19 - 0
drivers/core/Kconfig

@@ -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.

+ 2 - 2
drivers/core/Makefile

@@ -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