]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blobdiff - arch/arm/mach-imx/Kconfig
ARM i.MX25: Add devicetree support
[can-eth-gw-linux.git] / arch / arm / mach-imx / Kconfig
index 32197c117afe0b3c80656325ddafbdfdfc4f3e68..ff702c3f35b7998408101ce40c761366468c53c1 100644 (file)
@@ -1,3 +1,70 @@
+config ARCH_MXC
+       bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7
+       select ARCH_REQUIRE_GPIOLIB
+       select ARM_PATCH_PHYS_VIRT
+       select AUTO_ZRELADDR if !ZBOOT_ROM
+       select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
+       select GENERIC_CLOCKEVENTS
+       select GENERIC_IRQ_CHIP
+       select MULTI_IRQ_HANDLER
+       select SPARSE_IRQ
+       select USE_OF
+       help
+         Support for Freescale MXC/iMX-based family of processors
+
+menu "Freescale i.MX support"
+       depends on ARCH_MXC
+
+config MXC_IRQ_PRIOR
+       bool "Use IRQ priority"
+       help
+         Select this if you want to use prioritized IRQ handling.
+         This feature prevents higher priority ISR to be interrupted
+         by lower priority IRQ even IRQF_DISABLED flag is not set.
+         This may be useful in embedded applications, where are strong
+         requirements for timing.
+         Say N here, unless you have a specialized requirement.
+
+config MXC_TZIC
+       bool
+
+config MXC_AVIC
+       bool
+
+config MXC_DEBUG_BOARD
+       bool "Enable MXC debug board(for 3-stack)"
+       help
+         The debug board is an integral part of the MXC 3-stack(PDK)
+         platforms, it can be attached or removed from the peripheral
+         board. On debug board, several debug devices(ethernet, UART,
+         buttons, LEDs and JTAG) are implemented. Between the MCU and
+         these devices, a CPLD is added as a bridge which performs
+         data/address de-multiplexing and decode, signal level shift,
+         interrupt control and various board functions.
+
+config HAVE_EPIT
+       bool
+
+config MXC_USE_EPIT
+       bool "Use EPIT instead of GPT"
+       depends on HAVE_EPIT
+       help
+         Use EPIT as the system timer on systems that have it. Normally you
+         don't have a reason to do so as the EPIT has the same features and
+         uses the same clocks as the GPT. Anyway, on some systems the GPT
+         may be in use for other purposes.
+
+config MXC_ULPI
+       bool
+
+config ARCH_HAS_RNGA
+       bool
+
+config IRAM_ALLOC
+       bool
+       select GENERIC_ALLOCATOR
+
 config HAVE_IMX_GPC
        bool
 
@@ -5,6 +72,12 @@ config HAVE_IMX_MMDC
        bool
 
 config HAVE_IMX_SRC
+       def_bool y if SMP
+
+config IMX_HAVE_IOMUX_V1
+       bool
+
+config ARCH_MXC_IOMUX_V3
        bool
 
 config ARCH_MX1
@@ -41,70 +114,70 @@ config SOC_IMX1
 
 config SOC_IMX21
        bool
-       select MACH_MX21
-       select CPU_ARM926T
        select COMMON_CLK
+       select CPU_ARM926T
        select IMX_HAVE_IOMUX_V1
+       select MACH_MX21
        select MXC_AVIC
 
 config SOC_IMX25
        bool
        select ARCH_MX25
+       select ARCH_MXC_IOMUX_V3
        select COMMON_CLK
        select CPU_ARM926T
        select HAVE_CAN_FLEXCAN if CAN
-       select ARCH_MXC_IOMUX_V3
        select MXC_AVIC
 
 config SOC_IMX27
        bool
-       select MACH_MX27
-       select CPU_ARM926T
        select COMMON_CLK
+       select CPU_ARM926T
        select IMX_HAVE_IOMUX_V1
+       select MACH_MX27
        select MXC_AVIC
 
 config SOC_IMX31
        bool
+       select COMMON_CLK
        select CPU_V6
        select IMX_HAVE_PLATFORM_MXC_RNGA
        select MXC_AVIC
-       select COMMON_CLK
        select SMP_ON_UP if SMP
 
 config SOC_IMX35
        bool
-       select CPU_V6K
        select ARCH_MXC_IOMUX_V3
        select COMMON_CLK
+       select CPU_V6K
+       select HAVE_CAN_FLEXCAN if CAN
        select HAVE_EPIT
        select MXC_AVIC
        select SMP_ON_UP if SMP
-       select HAVE_CAN_FLEXCAN if CAN
 
 config SOC_IMX5
-       select CPU_V7
-       select MXC_TZIC
-       select COMMON_CLK
-       select ARCH_MXC_IOMUX_V3
+       bool
        select ARCH_HAS_CPUFREQ
        select ARCH_MX5
-       bool
+       select ARCH_MXC_IOMUX_V3
+       select COMMON_CLK
+       select CPU_V7
+       select MXC_TZIC
 
 config SOC_IMX50
        bool
-       select SOC_IMX5
        select ARCH_MX50
+       select SOC_IMX5
 
 config SOC_IMX51
        bool
-       select SOC_IMX5
        select ARCH_MX5
        select ARCH_MX51
        select PINCTRL
        select PINCTRL_IMX51
+       select SOC_IMX5
 
-if ARCH_IMX_V4_V5
+if ARCH_MULTI_V4T
 
 comment "MX1 platforms:"
 config MACH_MXLADS
@@ -112,10 +185,10 @@ config MACH_MXLADS
 
 config ARCH_MX1ADS
        bool "MX1ADS platform"
-       select MACH_MXLADS
-       select SOC_IMX1
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
+       select MACH_MXLADS
+       select SOC_IMX1
        help
          Say Y here if you are using Motorola MX1ADS/MXLADS boards
 
@@ -127,21 +200,25 @@ config MACH_SCB9328
 
 config MACH_APF9328
        bool "APF9328"
-       select SOC_IMX1
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX1
        help
          Say Yes here if you are using the Armadeus APF9328 development board
 
+endif
+
+if ARCH_MULTI_V5
+
 comment "MX21 platforms:"
 
 config MACH_MX21ADS
        bool "MX21ADS platform"
-       select SOC_IMX21
        select IMX_HAVE_PLATFORM_IMX_FB
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
+       select SOC_IMX21
        help
          Include support for MX21ADS platform. This includes specific
          configurations for the board and its peripherals.
@@ -150,22 +227,21 @@ comment "MX25 platforms:"
 
 config MACH_MX25_3DS
        bool "Support MX25PDK (3DS) Platform"
-       select SOC_IMX25
        select IMX_HAVE_PLATFORM_FLEXCAN
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMXDI_RTC
-       select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_FB
+       select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_KEYPAD
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+       select SOC_IMX25
 
 config MACH_EUKREA_CPUIMX25SD
        bool "Support Eukrea CPUIMX25 Platform"
-       select SOC_IMX25
        select IMX_HAVE_PLATFORM_FLEXCAN
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
@@ -177,6 +253,7 @@ config MACH_EUKREA_CPUIMX25SD
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX25
 
 choice
        prompt "Baseboard"
@@ -195,24 +272,30 @@ config MACH_EUKREA_MBIMXSD25_BASEBOARD
 
 endchoice
 
+config MACH_IMX25_DT
+       bool "Support i.MX25 platforms from device tree"
+       select SOC_IMX25
+       help
+         Include support for Freescale i.MX25 based platforms
+         using the device tree for discovery
+
 comment "MX27 platforms:"
 
 config MACH_MX27ADS
        bool "MX27ADS platform"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_IMX_FB
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
+       select SOC_IMX27
        help
          Include support for MX27ADS platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_PCM038
        bool "Phytec phyCORE-i.MX27 CPU module (pcm038)"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
@@ -221,6 +304,7 @@ config MACH_PCM038
        select IMX_HAVE_PLATFORM_MXC_W1
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX27
        help
          Include support for phyCORE-i.MX27 (aka pcm038) platform. This
          includes specific configurations for the module and its peripherals.
@@ -242,7 +326,6 @@ endchoice
 
 config MACH_CPUIMX27
        bool "Eukrea CPUIMX27 module"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
@@ -251,6 +334,7 @@ config MACH_CPUIMX27
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX27
        help
          Include support for Eukrea CPUIMX27 platform. This includes
          specific configurations for the module and its peripherals.
@@ -292,7 +376,6 @@ endchoice
 
 config MACH_MX27_3DS
        bool "MX27PDK platform"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_FB
@@ -306,13 +389,13 @@ config MACH_MX27_3DS
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_DEBUG_BOARD
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX27
        help
          Include support for MX27PDK platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_IMX27_VISSTRIM_M10
        bool "Vista Silicon i.MX27 Visstrim_m10"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_SSI
@@ -321,6 +404,7 @@ config MACH_IMX27_VISSTRIM_M10
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_MMC
        select LEDS_GPIO_REGISTER
+       select SOC_IMX27
        help
          Include support for Visstrim_m10 platform and its different variants.
          This includes specific configurations for the board and its
@@ -328,16 +412,15 @@ config MACH_IMX27_VISSTRIM_M10
 
 config MACH_IMX27LITE
        bool "LogicPD MX27 LITEKIT platform"
-       select SOC_IMX27
-       select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IMX_SSI
+       select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX27
        help
          Include support for MX27 LITEKIT platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_PCA100
        bool "Phytec phyCARD-s (pca100)"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_FB
@@ -350,27 +433,28 @@ config MACH_PCA100
        select IMX_HAVE_PLATFORM_MXC_W1
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX27
        help
          Include support for phyCARD-s (aka pca100) platform. This
          includes specific configurations for the module and its peripherals.
 
 config MACH_MXT_TD60
        bool "Maxtrack i-MXT TD60"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_IMX_FB
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
+       select SOC_IMX27
        help
          Include support for i-MXT (aka td60) platform. This
          includes specific configurations for the module and its peripherals.
 
 config MACH_IMX27IPCAM
        bool "IMX27 IPCAM platform"
-       select SOC_IMX27
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX27
        help
          Include support for IMX27 IPCAM platform. This includes specific
          configurations for the board and its peripherals.
@@ -384,17 +468,17 @@ config MACH_IMX27_DT
 
 endif
 
-if ARCH_IMX_V6_V7
+if ARCH_MULTI_V6
 
 comment "MX31 platforms:"
 
 config MACH_MX31ADS
        bool "Support MX31ADS platforms"
-       select SOC_IMX31
+       default y
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_SSI
        select IMX_HAVE_PLATFORM_IMX_UART
-       default y
+       select SOC_IMX31
        help
          Include support for MX31ADS platform. This includes specific
          configurations for the board and its peripherals.
@@ -412,21 +496,19 @@ config MACH_MX31ADS_WM1133_EV1
 
 config MACH_MX31LILLY
        bool "Support MX31 LILLY-1131 platforms (INCO startec)"
-       select SOC_IMX31
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IPU_CORE
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for mx31 based LILLY1131 modules. This includes
          specific configurations for the board and its peripherals.
 
 config MACH_MX31LITE
        bool "Support MX31 LITEKIT (LogicPD)"
-       select SOC_IMX31
-       select MXC_ULPI if USB_ULPI
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_EHCI
@@ -435,13 +517,14 @@ config MACH_MX31LITE
        select IMX_HAVE_PLATFORM_MXC_RTC
        select IMX_HAVE_PLATFORM_SPI_IMX
        select LEDS_GPIO_REGISTER
+       select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for MX31 LITEKIT platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_PCM037
        bool "Support Phytec pcm037 (i.MX31) platforms"
-       select SOC_IMX31
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
@@ -452,6 +535,7 @@ config MACH_PCM037
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for Phytec pcm037 platform. This includes
          specific configurations for the board and its peripherals.
@@ -468,8 +552,6 @@ config MACH_PCM037_EET
 
 config MACH_MX31_3DS
        bool "Support MX31PDK (3DS)"
-       select SOC_IMX31
-       select MXC_DEBUG_BOARD
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
@@ -481,7 +563,9 @@ config MACH_MX31_3DS
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SPI_IMX
+       select MXC_DEBUG_BOARD
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for MX31PDK (3DS) platform. This includes specific
          configurations for the board and its peripherals.
@@ -497,7 +581,6 @@ config MACH_MX31_3DS_MXC_NAND_USE_BBT
 
 config MACH_MX31MOBOARD
        bool "Support mx31moboard platforms (EPFL Mobots group)"
-       select SOC_IMX31
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
@@ -509,22 +592,22 @@ config MACH_MX31MOBOARD
        select IMX_HAVE_PLATFORM_SPI_IMX
        select LEDS_GPIO_REGISTER
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for mx31moboard platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_QONG
        bool "Support Dave/DENX QongEVB-LITE platform"
-       select SOC_IMX31
-       select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IMX2_WDT
+       select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX31
        help
          Include support for Dave/DENX QongEVB-LITE platform. This includes
          specific configurations for the board and its peripherals.
 
 config MACH_ARMADILLO5X0
        bool "Support Atmark Armadillo-500 Development Base Board"
-       select SOC_IMX31
        select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
@@ -533,23 +616,24 @@ config MACH_ARMADILLO5X0
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX31
        help
          Include support for Atmark Armadillo-500 platform. This includes
          specific configurations for the board and its peripherals.
 
 config MACH_KZM_ARM11_01
        bool "Support KZM-ARM11-01(Kyoto Microcomputer)"
-       select SOC_IMX31
        select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX31
        help
          Include support for KZM-ARM11-01. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_BUG
        bool "Support Buglabs BUGBase platform"
-       select SOC_IMX31
-       select IMX_HAVE_PLATFORM_IMX_UART
        default y
+       select IMX_HAVE_PLATFORM_IMX_UART
+       select SOC_IMX31
        help
          Include support for BUGBase 1.3 platform. This includes specific
          configurations for the board and its peripherals.
@@ -565,7 +649,6 @@ comment "MX35 platforms:"
 
 config MACH_PCM043
        bool "Support Phytec pcm043 (i.MX35) platforms"
-       select SOC_IMX35
        select IMX_HAVE_PLATFORM_FLEXCAN
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
@@ -577,14 +660,13 @@ config MACH_PCM043
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX35
        help
          Include support for Phytec pcm043 platform. This includes
          specific configurations for the board and its peripherals.
 
 config MACH_MX35_3DS
        bool "Support MX35PDK platform"
-       select SOC_IMX35
-       select MXC_DEBUG_BOARD
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_FB
@@ -595,13 +677,14 @@ config MACH_MX35_3DS
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_RTC
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+       select MXC_DEBUG_BOARD
+       select SOC_IMX35
        help
          Include support for MX35PDK platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_EUKREA_CPUIMX35SD
        bool "Support Eukrea CPUIMX35 Platform"
-       select SOC_IMX35
        select IMX_HAVE_PLATFORM_FLEXCAN
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
@@ -611,6 +694,7 @@ config MACH_EUKREA_CPUIMX35SD
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select MXC_ULPI if USB_ULPI
+       select SOC_IMX35
        help
          Include support for Eukrea CPUIMX35 platform. This includes
          specific configurations for the board and its peripherals.
@@ -635,30 +719,34 @@ endchoice
 
 config MACH_VPR200
        bool "Support VPR200 platform"
-       select SOC_IMX35
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX2_WDT
-       select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IMX_I2C
+       select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IPU_CORE
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+       select SOC_IMX35
        help
          Include support for VPR200 platform. This includes specific
          configurations for the board and its peripherals.
 
+endif
+
+if ARCH_MULTI_V7
+
 comment "i.MX5 platforms:"
 
 config MACH_MX50_RDP
        bool "Support MX50 reference design platform"
        depends on BROKEN
-       select SOC_IMX50
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select IMX_HAVE_PLATFORM_SPI_IMX
+       select SOC_IMX50
        help
          Include support for MX50 reference design platform (RDP) board. This
          includes specific configurations for the board and its peripherals.
@@ -667,15 +755,14 @@ comment "i.MX51 machines:"
 
 config MACH_IMX51_DT
        bool "Support i.MX51 platforms from device tree"
-       select SOC_IMX51
        select MACH_MX51_BABBAGE
+       select SOC_IMX51
        help
          Include support for Freescale i.MX51 based platforms
          using the device tree for discovery
 
 config MACH_MX51_BABBAGE
        bool "Support MX51 BABBAGE platforms"
-       select SOC_IMX51
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
@@ -683,6 +770,7 @@ config MACH_MX51_BABBAGE
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select IMX_HAVE_PLATFORM_SPI_IMX
+       select SOC_IMX51
        help
          Include support for MX51 Babbage platform, also known as MX51EVK in
          u-boot. This includes specific configurations for the board and its
@@ -690,27 +778,27 @@ config MACH_MX51_BABBAGE
 
 config MACH_MX51_3DS
        bool "Support MX51PDK (3DS)"
-       select SOC_IMX51
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_KEYPAD
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_DEBUG_BOARD
+       select SOC_IMX51
        help
          Include support for MX51PDK (3DS) platform. This includes specific
          configurations for the board and its peripherals.
 
 config MACH_EUKREA_CPUIMX51SD
        bool "Support Eukrea CPUIMX51SD module"
-       select SOC_IMX51
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
+       select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
-       select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SPI_IMX
+       select SOC_IMX51
        help
          Include support for Eukrea CPUIMX51SD platform. This includes
          specific configurations for the module and its peripherals.
@@ -736,12 +824,12 @@ comment "Device tree only"
 
 config SOC_IMX53
        bool "i.MX53 support"
-       select SOC_IMX5
        select ARCH_MX5
        select ARCH_MX53
        select HAVE_CAN_FLEXCAN if CAN
        select PINCTRL
        select PINCTRL_IMX53
+       select SOC_IMX5
 
        help
          This enables support for Freescale i.MX53 processor.
@@ -756,7 +844,6 @@ config SOC_IMX6Q
        select HAVE_CAN_FLEXCAN if CAN
        select HAVE_IMX_GPC
        select HAVE_IMX_MMDC
-       select HAVE_IMX_SRC
        select HAVE_SMP
        select MFD_SYSCON
        select PINCTRL
@@ -766,3 +853,7 @@ config SOC_IMX6Q
          This enables support for Freescale i.MX6 Quad processor.
 
 endif
+
+source "arch/arm/mach-imx/devices/Kconfig"
+
+endmenu