dm: Change CMD_DM enabling

CMD_DM is used for debug purpose and it shouldn't be enabled by default
via Kconfig. Unfortunately this is in the tree for quite a long time
that's why solution is to use imply DM for all targets which are
enabling DM.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
diff --git a/arch/Kconfig b/arch/Kconfig
index 7967fa5..bf1b4a9 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -50,6 +50,7 @@
 	select DM
 	select OF_CONTROL
 	select SUPPORT_OF_CONTROL
+	imply CMD_DM
 
 config PPC
 	bool "PowerPC architecture"
@@ -77,6 +78,7 @@
 	select LZO
 	select SPI
 	select SUPPORT_OF_CONTROL
+	imply CMD_DM
 	imply CMD_GETTIME
 	imply CMD_HASH
 	imply CMD_IO
@@ -107,6 +109,7 @@
 	select USE_PRIVATE_LIBGCC
 	select X86_TSC_TIMER
 	imply BLK
+	imply CMD_DM
 	imply CMD_FPGA_LOADMK
 	imply CMD_GETTIME
 	imply CMD_IO
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index b29e8f7..a047552 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -441,6 +441,7 @@
 	select OF_CONTROL
 	select OF_SEPARATE
 	select SPI
+	imply CMD_DM
 
 config TARGET_DEVKIT3250
 	bool "Support devkit3250"
@@ -499,6 +500,7 @@
 	select PL01X_SERIAL
 	select SPI
 	select SPI_FLASH
+	imply CMD_DM
 
 config TARGET_X600
 	bool "Support x600"
@@ -533,6 +535,7 @@
 	select OF_CONTROL
 	select PL01X_SERIAL
 	select SERIAL_SEARCH_ALL
+	imply CMD_DM
 	imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
@@ -548,6 +551,7 @@
 	select DM
 	select OF_CONTROL
 	select OF_PRIOR_STAGE
+	imply CMD_DM
 	help
 	  This enables support for Broadcom ARM-based set-top box
 	  chipsets, including the 7445 family of chips.
@@ -607,6 +611,7 @@
 	select DM_SPI
 	select DM_SPI_FLASH
 	select SPI
+	imply CMD_DM
 	imply FAT_WRITE
 
 config ARCH_S5PC1XX
@@ -616,6 +621,7 @@
 	select DM_GPIO
 	select DM_I2C
 	select DM_SERIAL
+	imply CMD_DM
 
 config ARCH_HIGHBANK
 	bool "Calxeda Highbank"
@@ -627,6 +633,7 @@
 	select DM
 	select DM_SERIAL
 	select PL01X_SERIAL
+	imply CMD_DM
 
 config ARCH_KEYSTONE
 	bool "TI Keystone"
@@ -660,6 +667,7 @@
 	select ARM64
 	select DM
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config ARCH_MX23
 	bool "NXP i.MX23 family"
@@ -724,6 +732,7 @@
 	select DM
 	select DM_SERIAL
 	select OF_CONTROL
+	imply CMD_DM
 
 config ARCH_QEMU
 	bool "QEMU Virtual Platform"
@@ -731,12 +740,14 @@
 	select DM_SERIAL
 	select OF_CONTROL
 	select PL01X_SERIAL
+	imply CMD_DM
 
 config ARCH_RMOBILE
 	bool "Renesas ARM SoCs"
 	select BOARD_EARLY_INIT_F
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 	imply FAT_WRITE
 	imply SYS_THUMB_BUILD
 
@@ -756,6 +767,7 @@
 	select OF_SEPARATE
 	select SMEM
 	select SPMI
+	imply CMD_DM
 
 config ARCH_SOCFPGA
 	bool "Altera SOCFPGA family"
@@ -784,6 +796,7 @@
 	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
 	select SYS_NS16550
 	select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
+	imply CMD_DM
 	imply CMD_MTDPARTS
 	imply CRC32_VERIFY
 	imply DM_SPI
@@ -816,6 +829,7 @@
 	select USB_KEYBOARD if DISTRO_DEFAULTS
 	select USB_STORAGE if DISTRO_DEFAULTS
 	select USE_TINY_PRINTF
+	imply CMD_DM
 	imply CMD_GPT
 	imply DISTRO_DEFAULTS
 	imply FAT_WRITE
@@ -861,6 +875,7 @@
 	select SUPPORT_SPL
 	imply ARCH_EARLY_INIT_R
 	imply CMD_CLK
+	imply CMD_DM
 	imply CMD_SPL
 	imply FAT_WRITE
 
@@ -871,6 +886,7 @@
 	select DM
 	select DM_SERIAL
 	select OF_CONTROL
+	imply CMD_DM
 
 config ARCH_ZYNQMP
 	bool "Xilinx ZynqMP based platform"
@@ -884,6 +900,7 @@
 	select SPL_BOARD_INIT if SPL
 	select SPL_CLK if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 	imply FAT_WRITE
 
 config TEGRA
@@ -1010,6 +1027,7 @@
 	select OF_CONTROL
 	select PL01X_SERIAL
 	select SPECIFY_CONSOLE_INDEX
+	imply CMD_DM
 	  help
 	  Support for HiKey 96boards platform. It features a HI6220
 	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
@@ -1022,6 +1040,7 @@
 	select DM_USB
 	select OF_CONTROL
 	select PL01X_SERIAL
+	imply CMD_DM
 	  help
 	  Support for Poplar 96boards EE platform. It features a HI3798cv200
 	  SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
@@ -1234,6 +1253,7 @@
 	select SPL_OF_CONTROL if SPL
 	select SPL_PINCTRL if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 	imply DISTRO_DEFAULTS
 	imply FAT_WRITE
 	help
@@ -1246,6 +1266,7 @@
 	select DM
 	select DM_SERIAL
 	select SYS_THUMB_BUILD
+	imply CMD_DM
 
 config ARCH_STI
 	bool "Support STMicrolectronics SoCs"
@@ -1255,6 +1276,7 @@
 	select DM_MMC
 	select DM_RESET
 	select DM_SERIAL
+	imply CMD_DM
 	help
 	  Support for STMicroelectronics STiH407/10 SoC family.
 	  This SoC is used on Linaro 96Board STiH410-B2260
@@ -1277,6 +1299,7 @@
 	select SYSCON
 	select SYSRESET
 	select SYS_THUMB_BUILD
+	imply CMD_DM
 	help
 	  Support for STM32MP SoC family developed by STMicroelectronics,
 	  MPUs based on ARM cortex A core
@@ -1304,6 +1327,7 @@
 	select SYS_MALLOC_F
 	select SYS_THUMB_BUILD if !ARM64
 	imply ADC
+	imply CMD_DM
 	imply DISTRO_DEFAULTS
 	imply FAT_WRITE
 	imply SARADC_ROCKCHIP
@@ -1323,6 +1347,7 @@
 	bool "Support Aspeed SoCs"
 	select DM
 	select OF_CONTROL
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 1a56957..69856c8 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -78,6 +78,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_GURNARD
 	bool "Support gurnard"
@@ -89,6 +90,7 @@
 	select DM_SERIAL
 	select DM_SPI
 	select SPI
+	imply CMD_DM
 
 config TARGET_AT91SAM9261EK
 	bool "Atmel at91sam9261 reference board"
@@ -209,6 +211,7 @@
 	select DM_GPIO
 	select DM_SERIAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_TAURUS
 	bool "Support taurus"
@@ -220,6 +223,7 @@
 	select DM_SPI
 	select SPI
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_SMARTWEB
 	bool "Support smartweb"
@@ -229,6 +233,7 @@
 	select DM_GPIO
 	select DM_SERIAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_VINCO
 	bool "Support VINCO"
@@ -237,6 +242,7 @@
 	select SAMA5D4
 	select SPI
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_WB45N
 	bool "Support Laird WB45N"
diff --git a/arch/arm/mach-imx/mx5/Kconfig b/arch/arm/mach-imx/mx5/Kconfig
index 1bb373b..051b15d 100644
--- a/arch/arm/mach-imx/mx5/Kconfig
+++ b/arch/arm/mach-imx/mx5/Kconfig
@@ -28,6 +28,7 @@
 	select DM_PMIC
 	select DM_SERIAL
 	select MX53
+	imply CMD_DM
 
 config TARGET_MX51EVK
 	bool "Support mx51evk"
@@ -44,6 +45,7 @@
 	select DM
 	select DM_SERIAL
 	select MX53
+	imply CMD_DM
 
 config TARGET_MX53EVK
 	bool "Support mx53evk"
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 2ae4fb3..a2799c4 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -64,6 +64,7 @@
 	select DM_THERMAL
 	select MX6UL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config MX6UL_OPOS6UL
 	bool
@@ -78,6 +79,7 @@
 	select SPL_PINCTRL if SPL
 	select SPL_SEPARATE_BSS if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config MX6ULL
 	bool
@@ -110,6 +112,7 @@
 	select DM_SERIAL
 	select DM_THERMAL
 	select SUPPORT_SPL
+	imply CMD_DM
 	imply CMD_SATA
 
 config TARGET_ARISTAINETOS
@@ -130,6 +133,7 @@
 	select DM_THERMAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_CM_FX6
 	bool "CM-FX6"
@@ -139,6 +143,7 @@
 	select DM_SERIAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_COLIBRI_IMX6
 	bool "Toradex Colibri iMX6 board"
@@ -147,6 +152,7 @@
 	select DM_SERIAL
 	select DM_THERMAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_COLIBRI_IMX6ULL
 	bool "Toradex Colibri iMX6ULL"
@@ -163,6 +169,7 @@
 	select DM_THERMAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 	imply CMD_SPL
 
 config TARGET_DISPLAY5
@@ -170,6 +177,7 @@
 	select DM
 	select DM_SERIAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_EMBESTMX6BOARDS
 	bool "embestmx6boards"
@@ -216,6 +224,7 @@
 	select DM_MMC
 	select DM_PMIC
 	select OF_CONTROL
+	imply CMD_DM
 
 config TARGET_MX6MEMCAL
 	bool "mx6memcal"
@@ -258,6 +267,7 @@
 	select SPL_USB_SDP_SUPPORT if SPL
 	select SPL_WATCHDOG_SUPPORT if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6Q_ENGICAM
 	bool "Support Engicam i.Core(RQS)"
@@ -276,6 +286,7 @@
 	select SPL_PINCTRL if SPL
 	select SPL_SEPARATE_BSS if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6SABREAUTO
 	bool "mx6sabreauto"
@@ -285,6 +296,7 @@
 	select DM_THERMAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6SABRESD
 	bool "mx6sabresd"
@@ -294,6 +306,7 @@
 	select DM_THERMAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6SLEVK
 	bool "mx6slevk"
@@ -306,6 +319,7 @@
 	select DM
 	select DM_THERMAL
 	select MX6SLL
+	imply CMD_DM
 
 config TARGET_MX6SXSABRESD
 	bool "mx6sxsabresd"
@@ -323,6 +337,7 @@
 	select DM
 	select DM_THERMAL
 	select MX6SX
+	imply CMD_DM
 
 config TARGET_MX6UL_9X9_EVK
 	bool "mx6ul_9x9_evk"
@@ -331,6 +346,7 @@
 	select DM_THERMAL
 	select MX6UL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6UL_14X14_EVK
 	bool "mx6ul_14x14_evk"
@@ -339,6 +355,7 @@
 	select DM_THERMAL
 	select MX6UL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6UL_ENGICAM
 	bool "Support Engicam GEAM6UL/Is.IoT"
@@ -356,6 +373,7 @@
 	select SPL_PINCTRL if SPL
 	select SPL_SEPARATE_BSS if SPL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX6ULL_14X14_EVK
 	bool "Support mx6ull_14x14_evk"
@@ -363,6 +381,7 @@
 	select DM
 	select DM_THERMAL
 	select MX6ULL
+	imply CMD_DM
 
 config TARGET_NITROGEN6X
 	bool "nitrogen6x"
@@ -429,6 +448,7 @@
 	select DM_THERMAL
 	select MX6QDL
 	select SUPPORT_SPL
+	imply CMD_DM
 	imply CMD_SPL
 
 config TARGET_TQMA6
@@ -448,6 +468,7 @@
 	select DM_THERMAL
 	select MX6SX
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_SAMTEC_VINING_2000
 	bool "samtec VIN|ING 2000"
@@ -455,6 +476,7 @@
 	select DM
 	select DM_THERMAL
 	select MX6SX
+	imply CMD_DM
 
 config TARGET_WANDBOARD
 	bool "wandboard"
@@ -474,6 +496,7 @@
 	select DM_THERMAL
 	select MX6UL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_ZC5202
 	bool "zc5202"
@@ -481,6 +504,7 @@
 	select DM
 	select DM_THERMAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_ZC5601
 	bool "zc5601"
@@ -488,6 +512,7 @@
 	select DM
 	select DM_THERMAL
 	select SUPPORT_SPL
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/arm/mach-imx/mx7/Kconfig b/arch/arm/mach-imx/mx7/Kconfig
index 60783ab..1acd7f3 100644
--- a/arch/arm/mach-imx/mx7/Kconfig
+++ b/arch/arm/mach-imx/mx7/Kconfig
@@ -26,6 +26,7 @@
 	select DM_THERMAL
 	select MX7D
 	select SUPPORT_SPL
+	imply CMD_DM
 
 config TARGET_MX7DSABRESD
 	bool "mx7dsabresd"
@@ -33,6 +34,7 @@
 	select DM
 	select DM_THERMAL
 	select MX7D
+	imply CMD_DM
 
 config TARGET_PICO_IMX7D
 	bool "pico-imx7d"
@@ -48,12 +50,15 @@
 	select DM
 	select DM_THERMAL
 	select MX7D
+	imply CMD_DM
+	imply CMD_DM
 
 config TARGET_COLIBRI_IMX7
 	bool "Support Colibri iMX7S/iMX7D modules"
 	select DM
 	select DM_SERIAL
 	select DM_THERMAL
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig
index 7662256..ee8b1cd 100644
--- a/arch/arm/mach-meson/Kconfig
+++ b/arch/arm/mach-meson/Kconfig
@@ -6,6 +6,7 @@
 	select CLK
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 	help
 	  The Amlogic Meson GXBaby (S905) is an ARM SoC with a
 	  quad-core Cortex-A53 CPU and a Mali-450 GPU.
@@ -16,6 +17,7 @@
 	select CLK
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 	help
 	  The Amlogic Meson GXL (S905X and S905D) is an ARM SoC with a
 	  quad-core Cortex-A53 CPU and a Mali-450 GPU.
diff --git a/arch/arm/mach-omap2/am33xx/Kconfig b/arch/arm/mach-omap2/am33xx/Kconfig
index 94d9d86..3529607 100644
--- a/arch/arm/mach-omap2/am33xx/Kconfig
+++ b/arch/arm/mach-omap2/am33xx/Kconfig
@@ -34,6 +34,7 @@
 	select DM_GPIO
 	select DM_SERIAL
 	select TI_I2C_BOARD_DETECT
+	imply CMD_DM
 	imply SPL_DM
 	imply SPL_DM_SEQ_ALIAS
 	imply SPL_ENV_SUPPORT
@@ -67,6 +68,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_AM335X_IGEP003X
 	bool "Support am335x_igep003x"
@@ -74,6 +76,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_AM335X_SHC
 	bool "Support am335x based shc board from bosch"
@@ -81,6 +84,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 	imply CMD_SPL
 
 config TARGET_AM335X_SL50
@@ -89,12 +93,14 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_BAV335X
 	bool "Support bav335x"
 	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 	help
 	  The BAV335x OEM Network Processor integrates all the functions of an
 	  embedded network computer in a small, easy to use SODIMM module which
@@ -118,12 +124,14 @@
 	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_CM_T335
 	bool "Support cm_t335"
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_DRACO
 	bool "Support draco"
@@ -131,6 +139,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_ETAMIN
 	bool "Support etamin"
@@ -138,24 +147,28 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_PCM051
 	bool "Support pcm051"
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_PENGWYN
 	bool "Support pengwyn"
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_PEPPER
 	bool "Support pepper"
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_PXM2
 	bool "Support pxm2"
@@ -163,6 +176,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_RASTABAN
 	bool "Support rastaban"
@@ -170,6 +184,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_RUT
 	bool "Support rut"
@@ -177,6 +192,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_THUBAN
 	bool "Support thuban"
@@ -184,11 +200,13 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_PDU001
 	bool "Support PDU001"
 	select DM
 	select DM_SERIAL
+	imply CMD_DM
 	help
 	  Support for PDU001 platform developed by EETS GmbH.
 	  The PDU001 is a processor and display unit developed around
diff --git a/arch/arm/mach-omap2/omap3/Kconfig b/arch/arm/mach-omap2/omap3/Kconfig
index 9e4227d..e0d02fb 100644
--- a/arch/arm/mach-omap2/omap3/Kconfig
+++ b/arch/arm/mach-omap2/omap3/Kconfig
@@ -27,6 +27,7 @@
 	select DM_I2C
 	select DM_MMC
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_MT_VENTOUX
 	bool "TeeJet Mt.Ventoux"
@@ -40,6 +41,7 @@
 	select DM_SERIAL
 	select OMAP3_GPIO_5
 	select OMAP3_GPIO_6
+	imply CMD_DM
 
 config TARGET_CM_T35
 	bool "CompuLab CM-T3530 and CM-T3730 boards"
@@ -58,6 +60,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_OMAP3_EVM
 	bool "TI OMAP3 EVM"
@@ -65,6 +68,7 @@
 	select DM_GPIO
 	select DM_SERIAL
 	select OMAP3_GPIO_3
+	imply CMD_DM
 
 config TARGET_OMAP3_IGEP00X0
 	bool "IGEP"
@@ -74,6 +78,7 @@
 	select OMAP3_GPIO_3
 	select OMAP3_GPIO_5
 	select OMAP3_GPIO_6
+	imply CMD_DM
 
 config TARGET_OMAP3_OVERO
 	bool "OMAP35xx Gumstix Overo"
@@ -85,12 +90,14 @@
 	select OMAP3_GPIO_4
 	select OMAP3_GPIO_5
 	select OMAP3_GPIO_6
+	imply CMD_DM
 
 config TARGET_OMAP3_ZOOM1
 	bool "TI Zoom1"
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_AM3517_CRANE
 	bool "am3517_crane"
@@ -123,6 +130,7 @@
 	select OMAP3_GPIO_3
 	select OMAP3_GPIO_4
 	select OMAP3_GPIO_6
+	imply CMD_DM
 
 config TARGET_NOKIA_RX51
 	bool "Nokia RX51"
@@ -145,6 +153,7 @@
 	select DM
 	select DM_GPIO
 	select DM_SERIAL
+	imply CMD_DM
 
 config TARGET_SNIPER
 	bool "LG Optimus Black"
@@ -156,6 +165,7 @@
 	select OMAP3_GPIO_4
 	select OMAP3_GPIO_5
 	select OMAP3_GPIO_6
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/arm/mach-rmobile/Kconfig.32 b/arch/arm/mach-rmobile/Kconfig.32
index 308f9de..bdca9bb 100644
--- a/arch/arm/mach-rmobile/Kconfig.32
+++ b/arch/arm/mach-rmobile/Kconfig.32
@@ -46,6 +46,7 @@
 	select DM
 	select DM_SERIAL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_GOSE
 	bool "Gose board"
@@ -54,6 +55,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_KOELSCH
 	bool "Koelsch board"
@@ -62,6 +64,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_LAGER
 	bool "Lager board"
@@ -70,6 +73,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_KZM9G
 	bool "KZM9D board"
@@ -81,6 +85,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_SILK
 	bool "Silk board"
@@ -89,6 +94,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_PORTER
 	bool "Porter board"
@@ -97,6 +103,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 config TARGET_STOUT
 	bool "Stout board"
@@ -105,6 +112,7 @@
 	select SPL_TINY_MEMSET
 	select SUPPORT_SPL
 	select USE_TINY_PRINTF
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index cd03705..86b1cd1 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -40,6 +40,7 @@
 	select OF_CONTROL
 	select SPI
 	select VIDCONSOLE_AS_LCD if DM_VIDEO
+	imply CMD_DM
 	imply CRC32_VERIFY
 
 config TEGRA_NO_BPMP
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 1df1ecf..5cc68d6 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -16,6 +16,7 @@
 	select OF_CONTROL
 	select SUPPORT_SPL
 	select SYSRESET
+	imply CMD_DM
 
 endchoice
 
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 315d89d..31b622f 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -42,6 +42,7 @@
 	select SUPPORTS_CPU_MIPS64_R6
 	select SUPPORTS_LITTLE_ENDIAN
 	select SWAP_IO_SPACE
+	imply CMD_DM
 
 config TARGET_VCT
 	bool "Support vct"
@@ -74,6 +75,7 @@
 	bool "Support QCA/Atheros ath79"
 	select DM
 	select OF_CONTROL
+	imply CMD_DM
 
 config ARCH_BMIPS
 	bool "Support BMIPS SoCs"
@@ -83,11 +85,13 @@
 	select OF_CONTROL
 	select RAM
 	select SYSRESET
+	imply CMD_DM
 
 config MACH_PIC32
 	bool "Support Microchip PIC32"
 	select DM
 	select OF_CONTROL
+	imply CMD_DM
 
 config TARGET_BOSTON
 	bool "Support Boston"
@@ -107,6 +111,7 @@
 	select SUPPORTS_CPU_MIPS64_R2
 	select SUPPORTS_CPU_MIPS64_R6
 	select SUPPORTS_LITTLE_ENDIAN
+	imply CMD_DM
 
 config TARGET_XILFPGA
 	bool "Support Imagination Xilfpga"
@@ -120,6 +125,7 @@
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SUPPORTS_LITTLE_ENDIAN
+	imply CMD_DM
 	help
 	  This supports IMGTEC MIPSfpga platform
 
diff --git a/arch/powerpc/cpu/mpc83xx/Kconfig b/arch/powerpc/cpu/mpc83xx/Kconfig
index 385a7a6..571cf8f 100644
--- a/arch/powerpc/cpu/mpc83xx/Kconfig
+++ b/arch/powerpc/cpu/mpc83xx/Kconfig
@@ -64,6 +64,7 @@
 config TARGET_IDS8313
 	bool "Support ids8313"
 	select DM
+	imply CMD_DM
 
 config TARGET_KM8360
 	bool "Support km8360"
diff --git a/cmd/Kconfig b/cmd/Kconfig
index a601470..6a47102 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -640,7 +640,6 @@
 config CMD_DM
 	bool "dm - Access to driver model information"
 	depends on DM
-	default y
 	help
 	  Provides access to driver model data structures and information,
 	  such as a list of devices, list of uclasses and the state of each