18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenuconfig ARCH_MXC
38c2ecf20Sopenharmony_ci	bool "Freescale i.MX family"
48c2ecf20Sopenharmony_ci	depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
58c2ecf20Sopenharmony_ci	select ARCH_SUPPORTS_BIG_ENDIAN
68c2ecf20Sopenharmony_ci	select CLKSRC_IMX_GPT
78c2ecf20Sopenharmony_ci	select GENERIC_IRQ_CHIP
88c2ecf20Sopenharmony_ci	select GPIOLIB
98c2ecf20Sopenharmony_ci	select PINCTRL
108c2ecf20Sopenharmony_ci	select PM_OPP if PM
118c2ecf20Sopenharmony_ci	select SOC_BUS
128c2ecf20Sopenharmony_ci	select SRAM
138c2ecf20Sopenharmony_ci	help
148c2ecf20Sopenharmony_ci	  Support for Freescale MXC/iMX-based family of processors
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciif ARCH_MXC
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciconfig MXC_TZIC
198c2ecf20Sopenharmony_ci	bool
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig MXC_AVIC
228c2ecf20Sopenharmony_ci	bool
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciconfig MXC_DEBUG_BOARD
258c2ecf20Sopenharmony_ci	bool "Enable MXC debug board(for 3-stack)"
268c2ecf20Sopenharmony_ci	depends on MACH_MX27_3DS || MACH_MX31_3DS || MACH_MX35_3DS
278c2ecf20Sopenharmony_ci	help
288c2ecf20Sopenharmony_ci	  The debug board is an integral part of the MXC 3-stack(PDK)
298c2ecf20Sopenharmony_ci	  platforms, it can be attached or removed from the peripheral
308c2ecf20Sopenharmony_ci	  board. On debug board, several debug devices(ethernet, UART,
318c2ecf20Sopenharmony_ci	  buttons, LEDs and JTAG) are implemented. Between the MCU and
328c2ecf20Sopenharmony_ci	  these devices, a CPLD is added as a bridge which performs
338c2ecf20Sopenharmony_ci	  data/address de-multiplexing and decode, signal level shift,
348c2ecf20Sopenharmony_ci	  interrupt control and various board functions.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciconfig HAVE_IMX_ANATOP
378c2ecf20Sopenharmony_ci	bool
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciconfig HAVE_IMX_GPC
408c2ecf20Sopenharmony_ci	bool
418c2ecf20Sopenharmony_ci	select PM_GENERIC_DOMAINS if PM
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciconfig HAVE_IMX_MMDC
448c2ecf20Sopenharmony_ci	bool
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciconfig HAVE_IMX_SRC
478c2ecf20Sopenharmony_ci	def_bool y if SMP
488c2ecf20Sopenharmony_ci	select ARCH_HAS_RESET_CONTROLLER
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciif ARCH_MULTI_V6
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cicomment "ARM1136 platforms"
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig SOC_IMX31
558c2ecf20Sopenharmony_ci	bool "i.MX31 support"
568c2ecf20Sopenharmony_ci	select CPU_V6
578c2ecf20Sopenharmony_ci	select MXC_AVIC
588c2ecf20Sopenharmony_ci	help
598c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX31 processor
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciconfig SOC_IMX35
628c2ecf20Sopenharmony_ci	bool "i.MX35 support"
638c2ecf20Sopenharmony_ci	select MXC_AVIC
648c2ecf20Sopenharmony_ci	select PINCTRL_IMX35
658c2ecf20Sopenharmony_ci	help
668c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX31 processor
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciendif
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciif ARCH_MULTI_V4T
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciconfig SOC_IMX1
738c2ecf20Sopenharmony_ci	bool "i.MX1 support"
748c2ecf20Sopenharmony_ci	select CPU_ARM920T
758c2ecf20Sopenharmony_ci	select MXC_AVIC
768c2ecf20Sopenharmony_ci	select PINCTRL_IMX1
778c2ecf20Sopenharmony_ci	help
788c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX1 processor
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciendif
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciif ARCH_MULTI_V5
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciconfig SOC_IMX25
858c2ecf20Sopenharmony_ci	bool "i.MX25 support"
868c2ecf20Sopenharmony_ci	select CPU_ARM926T
878c2ecf20Sopenharmony_ci	select MXC_AVIC
888c2ecf20Sopenharmony_ci	select PINCTRL_IMX25
898c2ecf20Sopenharmony_ci	help
908c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX25 processor
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig SOC_IMX27
938c2ecf20Sopenharmony_ci	bool "i.MX27 support"
948c2ecf20Sopenharmony_ci	select CPU_ARM926T
958c2ecf20Sopenharmony_ci	select MXC_AVIC
968c2ecf20Sopenharmony_ci	select PINCTRL_IMX27
978c2ecf20Sopenharmony_ci	help
988c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX27 processor
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciendif
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciif ARCH_MULTI_V7
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_cicomment "Cortex-A platforms"
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciconfig SOC_IMX5
1078c2ecf20Sopenharmony_ci	bool
1088c2ecf20Sopenharmony_ci	select HAVE_IMX_SRC
1098c2ecf20Sopenharmony_ci	select MXC_TZIC
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig	SOC_IMX50
1128c2ecf20Sopenharmony_ci	bool "i.MX50 support"
1138c2ecf20Sopenharmony_ci	select PINCTRL_IMX50
1148c2ecf20Sopenharmony_ci	select SOC_IMX5
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci	help
1178c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX50 processor.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ciconfig SOC_IMX51
1208c2ecf20Sopenharmony_ci	bool "i.MX51 support"
1218c2ecf20Sopenharmony_ci	select PINCTRL_IMX51
1228c2ecf20Sopenharmony_ci	select SOC_IMX5
1238c2ecf20Sopenharmony_ci	help
1248c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX51 processor
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ciconfig	SOC_IMX53
1278c2ecf20Sopenharmony_ci	bool "i.MX53 support"
1288c2ecf20Sopenharmony_ci	select PINCTRL_IMX53
1298c2ecf20Sopenharmony_ci	select SOC_IMX5
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci	help
1328c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX53 processor.
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ciconfig SOC_IMX6
1358c2ecf20Sopenharmony_ci	bool
1368c2ecf20Sopenharmony_ci	select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
1378c2ecf20Sopenharmony_ci	select ARM_GIC
1388c2ecf20Sopenharmony_ci	select HAVE_IMX_ANATOP
1398c2ecf20Sopenharmony_ci	select HAVE_IMX_GPC
1408c2ecf20Sopenharmony_ci	select HAVE_IMX_MMDC
1418c2ecf20Sopenharmony_ci	select HAVE_IMX_SRC
1428c2ecf20Sopenharmony_ci	select MFD_SYSCON
1438c2ecf20Sopenharmony_ci	select PL310_ERRATA_769419 if CACHE_L2X0
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ciconfig SOC_IMX6Q
1468c2ecf20Sopenharmony_ci	bool "i.MX6 Quad/DualLite support"
1478c2ecf20Sopenharmony_ci	select ARM_ERRATA_764369 if SMP
1488c2ecf20Sopenharmony_ci	select ARM_ERRATA_754322
1498c2ecf20Sopenharmony_ci	select ARM_ERRATA_775420
1508c2ecf20Sopenharmony_ci	select HAVE_ARM_SCU if SMP
1518c2ecf20Sopenharmony_ci	select HAVE_ARM_TWD
1528c2ecf20Sopenharmony_ci	select PINCTRL_IMX6Q
1538c2ecf20Sopenharmony_ci	select SOC_IMX6
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci	help
1568c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX6 Quad processor.
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ciconfig SOC_IMX6SL
1598c2ecf20Sopenharmony_ci	bool "i.MX6 SoloLite support"
1608c2ecf20Sopenharmony_ci	select ARM_ERRATA_754322
1618c2ecf20Sopenharmony_ci	select ARM_ERRATA_775420
1628c2ecf20Sopenharmony_ci	select PINCTRL_IMX6SL
1638c2ecf20Sopenharmony_ci	select SOC_IMX6
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci	help
1668c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX6 SoloLite processor.
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ciconfig SOC_IMX6SLL
1698c2ecf20Sopenharmony_ci	bool "i.MX6 SoloLiteLite support"
1708c2ecf20Sopenharmony_ci	select ARM_ERRATA_754322
1718c2ecf20Sopenharmony_ci	select ARM_ERRATA_775420
1728c2ecf20Sopenharmony_ci	select PINCTRL_IMX6SLL
1738c2ecf20Sopenharmony_ci	select SOC_IMX6
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci	help
1768c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX6 SoloLiteLite processor.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ciconfig SOC_IMX6SX
1798c2ecf20Sopenharmony_ci	bool "i.MX6 SoloX support"
1808c2ecf20Sopenharmony_ci	select ARM_ERRATA_754322
1818c2ecf20Sopenharmony_ci	select ARM_ERRATA_775420
1828c2ecf20Sopenharmony_ci	select PINCTRL_IMX6SX
1838c2ecf20Sopenharmony_ci	select SOC_IMX6
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci	help
1868c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX6 SoloX processor.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciconfig SOC_IMX6UL
1898c2ecf20Sopenharmony_ci	bool "i.MX6 UltraLite support"
1908c2ecf20Sopenharmony_ci	select PINCTRL_IMX6UL
1918c2ecf20Sopenharmony_ci	select SOC_IMX6
1928c2ecf20Sopenharmony_ci	select ARM_ERRATA_814220
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci	help
1958c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX6 UltraLite processor.
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ciconfig SOC_LS1021A
1988c2ecf20Sopenharmony_ci	bool "Freescale LS1021A support"
1998c2ecf20Sopenharmony_ci	select ARM_GIC
2008c2ecf20Sopenharmony_ci	select HAVE_ARM_ARCH_TIMER
2018c2ecf20Sopenharmony_ci	select ZONE_DMA if ARM_LPAE
2028c2ecf20Sopenharmony_ci	help
2038c2ecf20Sopenharmony_ci	  This enables support for Freescale LS1021A processor.
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciendif
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ciif ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_cicomment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ciconfig SOC_IMX7D_CA7
2128c2ecf20Sopenharmony_ci	bool
2138c2ecf20Sopenharmony_ci	select ARM_GIC
2148c2ecf20Sopenharmony_ci	select HAVE_ARM_ARCH_TIMER
2158c2ecf20Sopenharmony_ci	select HAVE_IMX_ANATOP
2168c2ecf20Sopenharmony_ci	select HAVE_IMX_MMDC
2178c2ecf20Sopenharmony_ci	select HAVE_IMX_SRC
2188c2ecf20Sopenharmony_ci	select IMX_GPCV2
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ciconfig SOC_IMX7D_CM4
2218c2ecf20Sopenharmony_ci	bool
2228c2ecf20Sopenharmony_ci	select ARMV7M_SYSTICK
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ciconfig SOC_IMX7D
2258c2ecf20Sopenharmony_ci	bool "i.MX7 Dual support"
2268c2ecf20Sopenharmony_ci	select PINCTRL_IMX7D
2278c2ecf20Sopenharmony_ci	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
2288c2ecf20Sopenharmony_ci	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
2298c2ecf20Sopenharmony_ci	select ARM_ERRATA_814220 if ARCH_MULTI_V7
2308c2ecf20Sopenharmony_ci	help
2318c2ecf20Sopenharmony_ci		This enables support for Freescale i.MX7 Dual processor.
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ciconfig SOC_IMX7ULP
2348c2ecf20Sopenharmony_ci	bool "i.MX7ULP support"
2358c2ecf20Sopenharmony_ci	select CLKSRC_IMX_TPM
2368c2ecf20Sopenharmony_ci	select PINCTRL_IMX7ULP
2378c2ecf20Sopenharmony_ci	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
2388c2ecf20Sopenharmony_ci	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
2398c2ecf20Sopenharmony_ci	help
2408c2ecf20Sopenharmony_ci	  This enables support for Freescale i.MX7 Ultra Low Power processor.
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ciconfig SOC_VF610
2438c2ecf20Sopenharmony_ci	bool "Vybrid Family VF610 support"
2448c2ecf20Sopenharmony_ci	select ARM_GIC if ARCH_MULTI_V7
2458c2ecf20Sopenharmony_ci	select PINCTRL_VF610
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci	help
2488c2ecf20Sopenharmony_ci	  This enables support for Freescale Vybrid VF610 processor.
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_cichoice
2518c2ecf20Sopenharmony_ci	prompt "Clocksource for scheduler clock"
2528c2ecf20Sopenharmony_ci	depends on SOC_VF610
2538c2ecf20Sopenharmony_ci	default VF_USE_ARM_GLOBAL_TIMER
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci	config VF_USE_ARM_GLOBAL_TIMER
2568c2ecf20Sopenharmony_ci		bool "Use ARM Global Timer"
2578c2ecf20Sopenharmony_ci		depends on ARCH_MULTI_V7
2588c2ecf20Sopenharmony_ci		select ARM_GLOBAL_TIMER
2598c2ecf20Sopenharmony_ci		select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
2608c2ecf20Sopenharmony_ci		help
2618c2ecf20Sopenharmony_ci		  Use the ARM Global Timer as clocksource
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci	config VF_USE_PIT_TIMER
2648c2ecf20Sopenharmony_ci		bool "Use PIT timer"
2658c2ecf20Sopenharmony_ci		select VF_PIT_TIMER
2668c2ecf20Sopenharmony_ci		help
2678c2ecf20Sopenharmony_ci		  Use SoC Periodic Interrupt Timer (PIT) as clocksource
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ciendchoice
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ciendif
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ciendif
274