1menu "Generic Driver Options" 2 3config DM 4 bool "Enable Driver Model" 5 help 6 This config option enables Driver Model. This brings in the core 7 support, including scanning of platform data on start-up. If 8 CONFIG_OF_CONTROL is enabled, the device tree will be scanned also 9 when available. 10 11config SPL_DM 12 bool "Enable Driver Model for SPL" 13 depends on DM && SPL 14 help 15 Enable driver model in SPL. You will need to provide a 16 suitable malloc() implementation. If you are not using the 17 full malloc() enabled by CONFIG_SYS_SPL_MALLOC_START, 18 consider using CONFIG_SYS_MALLOC_SIMPLE. In that case you 19 must provide CONFIG_SYS_MALLOC_F_LEN to set the size. 20 In most cases driver model will only allocate a few uclasses 21 and devices in SPL, so 1KB should be enable. See 22 CONFIG_SYS_MALLOC_F_LEN for more details on how to enable it. 23 24config DM_WARN 25 bool "Enable warnings in driver model" 26 depends on DM 27 default y 28 help 29 The dm_warn() function can use up quite a bit of space for its 30 strings. By default this is disabled for SPL builds to save space. 31 This will cause dm_warn() to be compiled out - it will do nothing 32 when called. 33 34config DM_DEVICE_REMOVE 35 bool "Support device removal" 36 depends on DM 37 default y 38 help 39 We can save some code space by dropping support for removing a 40 device. This is not normally required in SPL, so by default this 41 option is disabled for SPL. 42 43 Note that this may have undesirable results in the USB subsystem as 44 it causes unplugged devices to linger around in the dm-tree, and it 45 causes USB host controllers to not be stopped when booting the OS. 46 47config DM_STDIO 48 bool "Support stdio registration" 49 depends on DM 50 default y 51 help 52 Normally serial drivers register with stdio so that they can be used 53 as normal output devices. In SPL we don't normally use stdio, so 54 we can omit this feature. 55 56config DM_SEQ_ALIAS 57 bool "Support numbered aliases in device tree" 58 depends on DM 59 default y 60 help 61 Most boards will have a '/aliases' node containing the path to 62 numbered devices (e.g. serial0 = &serial0). This feature can be 63 disabled if it is not required, to save code space in SPL. 64 65config REGMAP 66 bool "Support register maps" 67 depends on DM 68 help 69 Hardware peripherals tend to have one or more sets of registers 70 which can be accessed to control the hardware. A register map 71 models this with a simple read/write interface. It can in principle 72 support any bus type (I2C, SPI) but so far this only supports 73 direct memory access. 74 75config SPL_REGMAP 76 bool "Support register maps in SPL" 77 depends on DM 78 help 79 Hardware peripherals tend to have one or more sets of registers 80 which can be accessed to control the hardware. A register map 81 models this with a simple read/write interface. It can in principle 82 support any bus type (I2C, SPI) but so far this only supports 83 direct memory access. 84 85config SYSCON 86 bool "Support system controllers" 87 depends on REGMAP 88 help 89 Many SoCs have a number of system controllers which are dealt with 90 as a group by a single driver. Some common functionality is provided 91 by this uclass, including accessing registers via regmap and 92 assigning a unique number to each. 93 94config SPL_SYSCON 95 bool "Support system controllers in SPL" 96 depends on REGMAP 97 help 98 Many SoCs have a number of system controllers which are dealt with 99 as a group by a single driver. Some common functionality is provided 100 by this uclass, including accessing registers via regmap and 101 assigning a unique number to each. 102 103config DEVRES 104 bool "Managed device resources" 105 depends on DM 106 help 107 This option enables the Managed device resources core support. 108 Device resources managed by the devres framework are automatically 109 released whether initialization fails half-way or the device gets 110 detached. 111 112 If this option is disabled, devres functions fall back to 113 non-managed variants. For example, devres_alloc() to kzalloc(), 114 devm_kmalloc() to kmalloc(), etc. 115 116config DEBUG_DEVRES 117 bool "Managed device resources debugging functions" 118 depends on DEVRES 119 help 120 If this option is enabled, devres debug messages are printed. 121 Also, a function is available to dump a list of device resources. 122 Select this if you are having a problem with devres or want to 123 debug resource management for a managed device. 124 125 If you are unsure about this, Say N here. 126 127config SIMPLE_BUS 128 bool "Support simple-bus driver" 129 depends on DM && OF_CONTROL 130 default y 131 help 132 Supports the 'simple-bus' driver, which is used on some systems. 133 134config SPL_SIMPLE_BUS 135 bool "Support simple-bus driver in SPL" 136 depends on SPL_DM && SPL_OF_CONTROL 137 default n 138 help 139 Supports the 'simple-bus' driver, which is used on some systems 140 in SPL. 141 142config OF_TRANSLATE 143 bool "Translate addresses using fdt_translate_address" 144 depends on DM && OF_CONTROL 145 default y 146 help 147 If this option is enabled, the reg property will be translated 148 using the fdt_translate_address() function. This is necessary 149 on some platforms (e.g. MVEBU) using complex "ranges" 150 properties in many nodes. As this translation is not handled 151 correctly in the default simple_bus_translate() function. 152 153 If this option is not enabled, simple_bus_translate() will be 154 used for the address translation. This function is faster and 155 smaller in size than fdt_translate_address(). 156 157config SPL_OF_TRANSLATE 158 bool "Translate addresses using fdt_translate_address" 159 depends on SPL_DM && SPL_OF_CONTROL 160 default n 161 help 162 If this option is enabled, the reg property will be translated 163 using the fdt_translate_address() function. This is necessary 164 on some platforms (e.g. MVEBU) using complex "ranges" 165 properties in many nodes. As this translation is not handled 166 correctly in the default simple_bus_translate() function. 167 168 If this option is not enabled, simple_bus_translate() will be 169 used for the address translation. This function is faster and 170 smaller in size than fdt_translate_address(). 171 172endmenu 173