1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig ARCH_MXC 3 bool "Freescale i.MX family" 4 depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M 5 select ARCH_SUPPORTS_BIG_ENDIAN 6 select CLKSRC_IMX_GPT 7 select GENERIC_IRQ_CHIP 8 select GPIOLIB 9 select PINCTRL 10 select PM_OPP if PM 11 select SOC_BUS 12 select SRAM 13 help 14 Support for Freescale MXC/iMX-based family of processors 15 16if ARCH_MXC 17 18config MXC_TZIC 19 bool 20 21config MXC_AVIC 22 bool 23 24config MXC_DEBUG_BOARD 25 bool "Enable MXC debug board(for 3-stack)" 26 depends on MACH_MX27_3DS || MACH_MX31_3DS || MACH_MX35_3DS 27 help 28 The debug board is an integral part of the MXC 3-stack(PDK) 29 platforms, it can be attached or removed from the peripheral 30 board. On debug board, several debug devices(ethernet, UART, 31 buttons, LEDs and JTAG) are implemented. Between the MCU and 32 these devices, a CPLD is added as a bridge which performs 33 data/address de-multiplexing and decode, signal level shift, 34 interrupt control and various board functions. 35 36config HAVE_IMX_ANATOP 37 bool 38 39config HAVE_IMX_GPC 40 bool 41 select PM_GENERIC_DOMAINS if PM 42 43config HAVE_IMX_MMDC 44 bool 45 46config HAVE_IMX_SRC 47 def_bool y if SMP 48 select ARCH_HAS_RESET_CONTROLLER 49 50config IMX_HAVE_IOMUX_V1 51 bool 52 53config ARCH_MXC_IOMUX_V3 54 bool 55 56config SOC_IMX35 57 bool 58 select ARCH_MXC_IOMUX_V3 59 select MXC_AVIC 60 select PINCTRL_IMX35 61 62if ARCH_MULTI_V6 63 64config SOC_IMX31 65 bool "i.MX31 support" 66 select CPU_V6 67 select MXC_AVIC 68 help 69 This enables support for Freescale i.MX31 processor 70 71comment "MX35 platforms:" 72 73config MACH_IMX35_DT 74 bool "Support i.MX35 platforms from device tree" 75 select SOC_IMX35 76 help 77 Include support for Freescale i.MX35 based platforms 78 using the device tree for discovery. 79 80config MACH_PCM043 81 bool "Support Phytec pcm043 (i.MX35) platforms" 82 select IMX_HAVE_PLATFORM_FLEXCAN 83 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 84 select IMX_HAVE_PLATFORM_IMX2_WDT 85 select IMX_HAVE_PLATFORM_IMX_I2C 86 select IMX_HAVE_PLATFORM_IMX_SSI 87 select IMX_HAVE_PLATFORM_IMX_UART 88 select IMX_HAVE_PLATFORM_IPU_CORE 89 select IMX_HAVE_PLATFORM_MXC_EHCI 90 select IMX_HAVE_PLATFORM_MXC_NAND 91 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 92 select USB_ULPI_VIEWPORT if USB_ULPI 93 select SOC_IMX35 94 help 95 Include support for Phytec pcm043 platform. This includes 96 specific configurations for the board and its peripherals. 97 98config MACH_MX35_3DS 99 bool "Support MX35PDK platform" 100 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 101 select IMX_HAVE_PLATFORM_IMX2_WDT 102 select IMX_HAVE_PLATFORM_IMX_FB 103 select IMX_HAVE_PLATFORM_IMX_I2C 104 select IMX_HAVE_PLATFORM_IMX_UART 105 select IMX_HAVE_PLATFORM_IPU_CORE 106 select IMX_HAVE_PLATFORM_MXC_EHCI 107 select IMX_HAVE_PLATFORM_MXC_NAND 108 select IMX_HAVE_PLATFORM_MXC_RTC 109 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 110 select MXC_DEBUG_BOARD 111 select SOC_IMX35 112 help 113 Include support for MX35PDK platform. This includes specific 114 configurations for the board and its peripherals. 115 116config MACH_VPR200 117 bool "Support VPR200 platform" 118 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 119 select IMX_HAVE_PLATFORM_GPIO_KEYS 120 select IMX_HAVE_PLATFORM_IMX2_WDT 121 select IMX_HAVE_PLATFORM_IMX_I2C 122 select IMX_HAVE_PLATFORM_IMX_UART 123 select IMX_HAVE_PLATFORM_IPU_CORE 124 select IMX_HAVE_PLATFORM_MXC_EHCI 125 select IMX_HAVE_PLATFORM_MXC_NAND 126 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 127 select SOC_IMX35 128 help 129 Include support for VPR200 platform. This includes specific 130 configurations for the board and its peripherals. 131 132endif 133 134if ARCH_MULTI_V4T 135 136config SOC_IMX1 137 bool "i.MX1 support" 138 select CPU_ARM920T 139 select MXC_AVIC 140 select PINCTRL_IMX1 141 help 142 This enables support for Freescale i.MX1 processor 143 144endif 145 146if ARCH_MULTI_V5 147 148config SOC_IMX25 149 bool "i.MX25 support" 150 select ARCH_MXC_IOMUX_V3 151 select CPU_ARM926T 152 select MXC_AVIC 153 select PINCTRL_IMX25 154 help 155 This enables support for Freescale i.MX25 processor 156 157config SOC_IMX27 158 bool "i.MX27 support" 159 select IMX_HAVE_IOMUX_V1 160 select CPU_ARM926T 161 select MXC_AVIC 162 select PINCTRL_IMX27 163 help 164 This enables support for Freescale i.MX27 processor 165 166endif 167 168if ARCH_MULTI_V7 169 170comment "Cortex-A platforms" 171 172config SOC_IMX5 173 bool 174 select HAVE_IMX_SRC 175 select MXC_TZIC 176 177config SOC_IMX50 178 bool "i.MX50 support" 179 select PINCTRL_IMX50 180 select SOC_IMX5 181 182 help 183 This enables support for Freescale i.MX50 processor. 184 185config SOC_IMX51 186 bool "i.MX51 support" 187 select PINCTRL_IMX51 188 select SOC_IMX5 189 help 190 This enables support for Freescale i.MX51 processor 191 192config SOC_IMX53 193 bool "i.MX53 support" 194 select PINCTRL_IMX53 195 select SOC_IMX5 196 197 help 198 This enables support for Freescale i.MX53 processor. 199 200config SOC_IMX6 201 bool 202 select ARM_CPU_SUSPEND if (PM || CPU_IDLE) 203 select ARM_GIC 204 select HAVE_IMX_ANATOP 205 select HAVE_IMX_GPC 206 select HAVE_IMX_MMDC 207 select HAVE_IMX_SRC 208 select MFD_SYSCON 209 select PL310_ERRATA_769419 if CACHE_L2X0 210 211config SOC_IMX6Q 212 bool "i.MX6 Quad/DualLite support" 213 select ARM_ERRATA_764369 if SMP 214 select ARM_ERRATA_754322 215 select ARM_ERRATA_775420 216 select HAVE_ARM_SCU if SMP 217 select HAVE_ARM_TWD 218 select PINCTRL_IMX6Q 219 select SOC_IMX6 220 221 help 222 This enables support for Freescale i.MX6 Quad processor. 223 224config SOC_IMX6SL 225 bool "i.MX6 SoloLite support" 226 select ARM_ERRATA_754322 227 select ARM_ERRATA_775420 228 select PINCTRL_IMX6SL 229 select SOC_IMX6 230 231 help 232 This enables support for Freescale i.MX6 SoloLite processor. 233 234config SOC_IMX6SLL 235 bool "i.MX6 SoloLiteLite support" 236 select ARM_ERRATA_754322 237 select ARM_ERRATA_775420 238 select PINCTRL_IMX6SLL 239 select SOC_IMX6 240 241 help 242 This enables support for Freescale i.MX6 SoloLiteLite processor. 243 244config SOC_IMX6SX 245 bool "i.MX6 SoloX support" 246 select ARM_ERRATA_754322 247 select ARM_ERRATA_775420 248 select PINCTRL_IMX6SX 249 select SOC_IMX6 250 251 help 252 This enables support for Freescale i.MX6 SoloX processor. 253 254config SOC_IMX6UL 255 bool "i.MX6 UltraLite support" 256 select PINCTRL_IMX6UL 257 select SOC_IMX6 258 select ARM_ERRATA_814220 259 260 help 261 This enables support for Freescale i.MX6 UltraLite processor. 262 263config SOC_LS1021A 264 bool "Freescale LS1021A support" 265 select ARM_GIC 266 select HAVE_ARM_ARCH_TIMER 267 select ZONE_DMA if ARM_LPAE 268 help 269 This enables support for Freescale LS1021A processor. 270 271endif 272 273if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M 274 275comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms" 276 277config SOC_IMX7D_CA7 278 bool 279 select ARM_GIC 280 select HAVE_ARM_ARCH_TIMER 281 select HAVE_IMX_ANATOP 282 select HAVE_IMX_MMDC 283 select HAVE_IMX_SRC 284 select IMX_GPCV2 285 286config SOC_IMX7D_CM4 287 bool 288 select ARMV7M_SYSTICK 289 290config SOC_IMX7D 291 bool "i.MX7 Dual support" 292 select PINCTRL_IMX7D 293 select SOC_IMX7D_CA7 if ARCH_MULTI_V7 294 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M 295 select ARM_ERRATA_814220 if ARCH_MULTI_V7 296 help 297 This enables support for Freescale i.MX7 Dual processor. 298 299config SOC_IMX7ULP 300 bool "i.MX7ULP support" 301 select CLKSRC_IMX_TPM 302 select PINCTRL_IMX7ULP 303 select SOC_IMX7D_CA7 if ARCH_MULTI_V7 304 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M 305 help 306 This enables support for Freescale i.MX7 Ultra Low Power processor. 307 308config SOC_VF610 309 bool "Vybrid Family VF610 support" 310 select ARM_GIC if ARCH_MULTI_V7 311 select PINCTRL_VF610 312 313 help 314 This enables support for Freescale Vybrid VF610 processor. 315 316choice 317 prompt "Clocksource for scheduler clock" 318 depends on SOC_VF610 319 default VF_USE_ARM_GLOBAL_TIMER 320 321 config VF_USE_ARM_GLOBAL_TIMER 322 bool "Use ARM Global Timer" 323 depends on ARCH_MULTI_V7 324 select ARM_GLOBAL_TIMER 325 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 326 help 327 Use the ARM Global Timer as clocksource 328 329 config VF_USE_PIT_TIMER 330 bool "Use PIT timer" 331 select VF_PIT_TIMER 332 help 333 Use SoC Periodic Interrupt Timer (PIT) as clocksource 334 335endchoice 336 337endif 338 339source "arch/arm/mach-imx/devices/Kconfig" 340 341endif 342