|  | # SPDX-License-Identifier: GPL-2.0-only | 
|  | menuconfig ARCH_MXC | 
|  | bool "Freescale i.MX family" | 
|  | depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M | 
|  | select ARCH_SUPPORTS_BIG_ENDIAN | 
|  | select CLKSRC_IMX_GPT | 
|  | select GENERIC_IRQ_CHIP | 
|  | select GPIOLIB | 
|  | select PINCTRL | 
|  | select PM_OPP if PM | 
|  | select SOC_BUS | 
|  | select SRAM | 
|  | help | 
|  | Support for Freescale MXC/iMX-based family of processors | 
|  |  | 
|  | if ARCH_MXC | 
|  |  | 
|  | config MXC_TZIC | 
|  | bool | 
|  |  | 
|  | config MXC_AVIC | 
|  | bool | 
|  |  | 
|  | config MXC_DEBUG_BOARD | 
|  | bool "Enable MXC debug board(for 3-stack)" | 
|  | depends on MACH_MX27_3DS || MACH_MX31_3DS || MACH_MX35_3DS | 
|  | 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_IMX_ANATOP | 
|  | bool | 
|  |  | 
|  | config HAVE_IMX_GPC | 
|  | bool | 
|  | select PM_GENERIC_DOMAINS if PM | 
|  |  | 
|  | config HAVE_IMX_MMDC | 
|  | bool | 
|  |  | 
|  | config HAVE_IMX_SRC | 
|  | def_bool y if SMP | 
|  | select ARCH_HAS_RESET_CONTROLLER | 
|  |  | 
|  | if ARCH_MULTI_V6 | 
|  |  | 
|  | comment "ARM1136 platforms" | 
|  |  | 
|  | config SOC_IMX31 | 
|  | bool "i.MX31 support" | 
|  | select CPU_V6 | 
|  | select MXC_AVIC | 
|  | help | 
|  | This enables support for Freescale i.MX31 processor | 
|  |  | 
|  | config SOC_IMX35 | 
|  | bool "i.MX35 support" | 
|  | select MXC_AVIC | 
|  | select PINCTRL_IMX35 | 
|  | help | 
|  | This enables support for Freescale i.MX35 processor | 
|  |  | 
|  | endif | 
|  |  | 
|  | if ARCH_MULTI_V4T | 
|  |  | 
|  | config SOC_IMX1 | 
|  | bool "i.MX1 support" | 
|  | select CPU_ARM920T | 
|  | select MXC_AVIC | 
|  | select PINCTRL_IMX1 | 
|  | help | 
|  | This enables support for Freescale i.MX1 processor | 
|  |  | 
|  | endif | 
|  |  | 
|  | if ARCH_MULTI_V5 | 
|  |  | 
|  | config SOC_IMX25 | 
|  | bool "i.MX25 support" | 
|  | select CPU_ARM926T | 
|  | select MXC_AVIC | 
|  | select PINCTRL_IMX25 | 
|  | help | 
|  | This enables support for Freescale i.MX25 processor | 
|  |  | 
|  | config SOC_IMX27 | 
|  | bool "i.MX27 support" | 
|  | select CPU_ARM926T | 
|  | select MXC_AVIC | 
|  | select PINCTRL_IMX27 | 
|  | help | 
|  | This enables support for Freescale i.MX27 processor | 
|  |  | 
|  | endif | 
|  |  | 
|  | if ARCH_MULTI_V7 | 
|  |  | 
|  | comment "Cortex-A platforms" | 
|  |  | 
|  | config SOC_IMX5 | 
|  | bool | 
|  | select HAVE_IMX_SRC | 
|  | select MXC_TZIC | 
|  |  | 
|  | config	SOC_IMX50 | 
|  | bool "i.MX50 support" | 
|  | select PINCTRL_IMX50 | 
|  | select SOC_IMX5 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX50 processor. | 
|  |  | 
|  | config SOC_IMX51 | 
|  | bool "i.MX51 support" | 
|  | select PINCTRL_IMX51 | 
|  | select SOC_IMX5 | 
|  | help | 
|  | This enables support for Freescale i.MX51 processor | 
|  |  | 
|  | config	SOC_IMX53 | 
|  | bool "i.MX53 support" | 
|  | select PINCTRL_IMX53 | 
|  | select SOC_IMX5 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX53 processor. | 
|  |  | 
|  | config SOC_IMX6 | 
|  | bool | 
|  | select ARM_CPU_SUSPEND if (PM || CPU_IDLE) | 
|  | select ARM_GIC | 
|  | select HAVE_IMX_ANATOP | 
|  | select HAVE_IMX_GPC | 
|  | select HAVE_IMX_MMDC | 
|  | select HAVE_IMX_SRC | 
|  | select MFD_SYSCON | 
|  | select PL310_ERRATA_769419 if CACHE_L2X0 | 
|  |  | 
|  | config SOC_IMX6Q | 
|  | bool "i.MX6 Quad/DualLite support" | 
|  | select ARM_ERRATA_764369 if SMP | 
|  | select ARM_ERRATA_754322 | 
|  | select ARM_ERRATA_775420 | 
|  | select HAVE_ARM_SCU if SMP | 
|  | select HAVE_ARM_TWD | 
|  | select PINCTRL_IMX6Q | 
|  | select SOC_IMX6 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX6 Quad processor. | 
|  |  | 
|  | config SOC_IMX6SL | 
|  | bool "i.MX6 SoloLite support" | 
|  | select ARM_ERRATA_754322 | 
|  | select ARM_ERRATA_775420 | 
|  | select PINCTRL_IMX6SL | 
|  | select SOC_IMX6 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX6 SoloLite processor. | 
|  |  | 
|  | config SOC_IMX6SLL | 
|  | bool "i.MX6 SoloLiteLite support" | 
|  | select ARM_ERRATA_754322 | 
|  | select ARM_ERRATA_775420 | 
|  | select PINCTRL_IMX6SLL | 
|  | select SOC_IMX6 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX6 SoloLiteLite processor. | 
|  |  | 
|  | config SOC_IMX6SX | 
|  | bool "i.MX6 SoloX support" | 
|  | select ARM_ERRATA_754322 | 
|  | select ARM_ERRATA_775420 | 
|  | select PINCTRL_IMX6SX | 
|  | select SOC_IMX6 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX6 SoloX processor. | 
|  |  | 
|  | config SOC_IMX6UL | 
|  | bool "i.MX6 UltraLite support" | 
|  | select PINCTRL_IMX6UL | 
|  | select SOC_IMX6 | 
|  | select ARM_ERRATA_814220 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale i.MX6 UltraLite processor. | 
|  |  | 
|  | config SOC_LS1021A | 
|  | bool "Freescale LS1021A support" | 
|  | select ARM_GIC | 
|  | select HAVE_ARM_ARCH_TIMER | 
|  | select ZONE_DMA if ARM_LPAE | 
|  | help | 
|  | This enables support for Freescale LS1021A processor. | 
|  |  | 
|  | endif | 
|  |  | 
|  | if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M | 
|  |  | 
|  | comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms" | 
|  |  | 
|  | config SOC_IMX7D_CA7 | 
|  | bool | 
|  | select ARM_GIC | 
|  | select HAVE_ARM_ARCH_TIMER | 
|  | select HAVE_IMX_ANATOP | 
|  | select HAVE_IMX_MMDC | 
|  | select HAVE_IMX_SRC | 
|  | select IMX_GPCV2 | 
|  |  | 
|  | config SOC_IMX7D_CM4 | 
|  | bool | 
|  | select ARMV7M_SYSTICK | 
|  |  | 
|  | config SOC_IMX7D | 
|  | bool "i.MX7 Dual support" | 
|  | select PINCTRL_IMX7D | 
|  | select SOC_IMX7D_CA7 if ARCH_MULTI_V7 | 
|  | select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M | 
|  | select ARM_ERRATA_814220 if ARCH_MULTI_V7 | 
|  | help | 
|  | This enables support for Freescale i.MX7 Dual processor. | 
|  |  | 
|  | config SOC_IMX7ULP | 
|  | bool "i.MX7ULP support" | 
|  | select CLKSRC_IMX_TPM | 
|  | select PINCTRL_IMX7ULP | 
|  | select SOC_IMX7D_CA7 if ARCH_MULTI_V7 | 
|  | select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M | 
|  | help | 
|  | This enables support for Freescale i.MX7 Ultra Low Power processor. | 
|  |  | 
|  | config SOC_VF610 | 
|  | bool "Vybrid Family VF610 support" | 
|  | select ARM_GIC if ARCH_MULTI_V7 | 
|  | select PINCTRL_VF610 | 
|  |  | 
|  | help | 
|  | This enables support for Freescale Vybrid VF610 processor. | 
|  |  | 
|  | choice | 
|  | prompt "Clocksource for scheduler clock" | 
|  | depends on SOC_VF610 | 
|  | default VF_USE_ARM_GLOBAL_TIMER | 
|  |  | 
|  | config VF_USE_ARM_GLOBAL_TIMER | 
|  | bool "Use ARM Global Timer" | 
|  | depends on ARCH_MULTI_V7 | 
|  | select ARM_GLOBAL_TIMER | 
|  | select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK | 
|  | help | 
|  | Use the ARM Global Timer as clocksource | 
|  |  | 
|  | config VF_USE_PIT_TIMER | 
|  | bool "Use PIT timer" | 
|  | select VF_PIT_TIMER | 
|  | help | 
|  | Use SoC Periodic Interrupt Timer (PIT) as clocksource | 
|  |  | 
|  | endchoice | 
|  |  | 
|  | endif | 
|  |  | 
|  | endif |