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_IMX31 57 bool 58 select CPU_V6 59 select MXC_AVIC 60 61config SOC_IMX35 62 bool 63 select ARCH_MXC_IOMUX_V3 64 select MXC_AVIC 65 select PINCTRL_IMX35 66 67if ARCH_MULTI_V6 68 69comment "MX31 platforms:" 70 71config MACH_MX31ADS 72 bool "Support MX31ADS platforms" 73 default y 74 select IMX_HAVE_PLATFORM_IMX_I2C 75 select IMX_HAVE_PLATFORM_IMX_SSI 76 select IMX_HAVE_PLATFORM_IMX_UART 77 select SOC_IMX31 78 help 79 Include support for MX31ADS platform. This includes specific 80 configurations for the board and its peripherals. 81 82config MACH_MX31ADS_WM1133_EV1 83 bool "Support Wolfson Microelectronics 1133-EV1 module" 84 depends on MACH_MX31ADS 85 depends on MFD_WM8350_I2C 86 depends on REGULATOR_WM8350 = y 87 help 88 Include support for the Wolfson Microelectronics 1133-EV1 PMU 89 and audio module for the MX31ADS platform. 90 91config MACH_MX31LILLY 92 bool "Support MX31 LILLY-1131 platforms (INCO startec)" 93 select IMX_HAVE_PLATFORM_IMX_UART 94 select IMX_HAVE_PLATFORM_IPU_CORE 95 select IMX_HAVE_PLATFORM_MXC_EHCI 96 select IMX_HAVE_PLATFORM_MXC_MMC 97 select IMX_HAVE_PLATFORM_SPI_IMX 98 select USB_ULPI_VIEWPORT if USB_ULPI 99 select SOC_IMX31 100 help 101 Include support for mx31 based LILLY1131 modules. This includes 102 specific configurations for the board and its peripherals. 103 104config MACH_MX31LITE 105 bool "Support MX31 LITEKIT (LogicPD)" 106 select IMX_HAVE_PLATFORM_IMX2_WDT 107 select IMX_HAVE_PLATFORM_IMX_UART 108 select IMX_HAVE_PLATFORM_MXC_EHCI 109 select IMX_HAVE_PLATFORM_MXC_MMC 110 select IMX_HAVE_PLATFORM_MXC_NAND 111 select IMX_HAVE_PLATFORM_MXC_RTC 112 select IMX_HAVE_PLATFORM_SPI_IMX 113 select LEDS_GPIO_REGISTER 114 select USB_ULPI_VIEWPORT if USB_ULPI 115 select SOC_IMX31 116 help 117 Include support for MX31 LITEKIT platform. This includes specific 118 configurations for the board and its peripherals. 119 120config MACH_PCM037 121 bool "Support Phytec pcm037 (i.MX31) platforms" 122 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 123 select IMX_HAVE_PLATFORM_IMX2_WDT 124 select IMX_HAVE_PLATFORM_IMX_I2C 125 select IMX_HAVE_PLATFORM_IMX_UART 126 select IMX_HAVE_PLATFORM_IPU_CORE 127 select IMX_HAVE_PLATFORM_MXC_EHCI 128 select IMX_HAVE_PLATFORM_MXC_MMC 129 select IMX_HAVE_PLATFORM_MXC_NAND 130 select IMX_HAVE_PLATFORM_MXC_W1 131 select USB_ULPI_VIEWPORT if USB_ULPI 132 select SOC_IMX31 133 help 134 Include support for Phytec pcm037 platform. This includes 135 specific configurations for the board and its peripherals. 136 137config MACH_PCM037_EET 138 bool "Support pcm037 EET board extensions" 139 depends on MACH_PCM037 140 select IMX_HAVE_PLATFORM_GPIO_KEYS 141 select IMX_HAVE_PLATFORM_SPI_IMX 142 help 143 Add support for PCM037 EET baseboard extensions. If you are using the 144 OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel 145 command-line parameter. 146 147config MACH_MX31_3DS 148 bool "Support MX31PDK (3DS)" 149 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 150 select IMX_HAVE_PLATFORM_IMX2_WDT 151 select IMX_HAVE_PLATFORM_IMX_I2C 152 select IMX_HAVE_PLATFORM_IMX_KEYPAD 153 select IMX_HAVE_PLATFORM_IMX_SSI 154 select IMX_HAVE_PLATFORM_IMX_UART 155 select IMX_HAVE_PLATFORM_IPU_CORE 156 select IMX_HAVE_PLATFORM_MXC_EHCI 157 select IMX_HAVE_PLATFORM_MXC_MMC 158 select IMX_HAVE_PLATFORM_MXC_NAND 159 select IMX_HAVE_PLATFORM_SPI_IMX 160 select MXC_DEBUG_BOARD 161 select USB_ULPI_VIEWPORT if USB_ULPI 162 select SOC_IMX31 163 help 164 Include support for MX31PDK (3DS) platform. This includes specific 165 configurations for the board and its peripherals. 166 167config MACH_MX31_3DS_MXC_NAND_USE_BBT 168 bool "Make the MXC NAND driver use the in flash Bad Block Table" 169 depends on MACH_MX31_3DS 170 depends on MTD_NAND_MXC 171 help 172 Enable this if you want that the MXC NAND driver uses the in flash 173 Bad Block Table to know what blocks are bad instead of scanning the 174 entire flash looking for bad block markers. 175 176config MACH_MX31MOBOARD 177 bool "Support mx31moboard platforms (EPFL Mobots group)" 178 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 179 select IMX_HAVE_PLATFORM_IMX2_WDT 180 select IMX_HAVE_PLATFORM_IMX_I2C 181 select IMX_HAVE_PLATFORM_IMX_SSI 182 select IMX_HAVE_PLATFORM_IMX_UART 183 select IMX_HAVE_PLATFORM_IPU_CORE 184 select IMX_HAVE_PLATFORM_MXC_EHCI 185 select IMX_HAVE_PLATFORM_MXC_MMC 186 select IMX_HAVE_PLATFORM_SPI_IMX 187 select LEDS_GPIO_REGISTER 188 select USB_ULPI_VIEWPORT if USB_ULPI 189 select SOC_IMX31 190 help 191 Include support for mx31moboard platform. This includes specific 192 configurations for the board and its peripherals. 193 194config MACH_QONG 195 bool "Support Dave/DENX QongEVB-LITE platform" 196 select IMX_HAVE_PLATFORM_IMX2_WDT 197 select IMX_HAVE_PLATFORM_IMX_UART 198 select SOC_IMX31 199 help 200 Include support for Dave/DENX QongEVB-LITE platform. This includes 201 specific configurations for the board and its peripherals. 202 203config MACH_ARMADILLO5X0 204 bool "Support Atmark Armadillo-500 Development Base Board" 205 select IMX_HAVE_PLATFORM_GPIO_KEYS 206 select IMX_HAVE_PLATFORM_IMX_I2C 207 select IMX_HAVE_PLATFORM_IMX_UART 208 select IMX_HAVE_PLATFORM_IPU_CORE 209 select IMX_HAVE_PLATFORM_MXC_EHCI 210 select IMX_HAVE_PLATFORM_MXC_MMC 211 select IMX_HAVE_PLATFORM_MXC_NAND 212 select USB_ULPI_VIEWPORT if USB_ULPI 213 select SOC_IMX31 214 help 215 Include support for Atmark Armadillo-500 platform. This includes 216 specific configurations for the board and its peripherals. 217 218config MACH_KZM_ARM11_01 219 bool "Support KZM-ARM11-01(Kyoto Microcomputer)" 220 select IMX_HAVE_PLATFORM_IMX_UART 221 select SOC_IMX31 222 help 223 Include support for KZM-ARM11-01. This includes specific 224 configurations for the board and its peripherals. 225 226config MACH_BUG 227 bool "Support Buglabs BUGBase platform" 228 default y 229 select IMX_HAVE_PLATFORM_IMX_UART 230 select SOC_IMX31 231 help 232 Include support for BUGBase 1.3 platform. This includes specific 233 configurations for the board and its peripherals. 234 235config MACH_IMX31_DT 236 bool "Support i.MX31 platforms from device tree" 237 select SOC_IMX31 238 help 239 Include support for Freescale i.MX31 based platforms 240 using the device tree for discovery. 241 242comment "MX35 platforms:" 243 244config MACH_IMX35_DT 245 bool "Support i.MX35 platforms from device tree" 246 select SOC_IMX35 247 help 248 Include support for Freescale i.MX35 based platforms 249 using the device tree for discovery. 250 251config MACH_PCM043 252 bool "Support Phytec pcm043 (i.MX35) platforms" 253 select IMX_HAVE_PLATFORM_FLEXCAN 254 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 255 select IMX_HAVE_PLATFORM_IMX2_WDT 256 select IMX_HAVE_PLATFORM_IMX_I2C 257 select IMX_HAVE_PLATFORM_IMX_SSI 258 select IMX_HAVE_PLATFORM_IMX_UART 259 select IMX_HAVE_PLATFORM_IPU_CORE 260 select IMX_HAVE_PLATFORM_MXC_EHCI 261 select IMX_HAVE_PLATFORM_MXC_NAND 262 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 263 select USB_ULPI_VIEWPORT if USB_ULPI 264 select SOC_IMX35 265 help 266 Include support for Phytec pcm043 platform. This includes 267 specific configurations for the board and its peripherals. 268 269config MACH_MX35_3DS 270 bool "Support MX35PDK platform" 271 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 272 select IMX_HAVE_PLATFORM_IMX2_WDT 273 select IMX_HAVE_PLATFORM_IMX_FB 274 select IMX_HAVE_PLATFORM_IMX_I2C 275 select IMX_HAVE_PLATFORM_IMX_UART 276 select IMX_HAVE_PLATFORM_IPU_CORE 277 select IMX_HAVE_PLATFORM_MXC_EHCI 278 select IMX_HAVE_PLATFORM_MXC_NAND 279 select IMX_HAVE_PLATFORM_MXC_RTC 280 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 281 select MXC_DEBUG_BOARD 282 select SOC_IMX35 283 help 284 Include support for MX35PDK platform. This includes specific 285 configurations for the board and its peripherals. 286 287config MACH_VPR200 288 bool "Support VPR200 platform" 289 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 290 select IMX_HAVE_PLATFORM_GPIO_KEYS 291 select IMX_HAVE_PLATFORM_IMX2_WDT 292 select IMX_HAVE_PLATFORM_IMX_I2C 293 select IMX_HAVE_PLATFORM_IMX_UART 294 select IMX_HAVE_PLATFORM_IPU_CORE 295 select IMX_HAVE_PLATFORM_MXC_EHCI 296 select IMX_HAVE_PLATFORM_MXC_NAND 297 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 298 select SOC_IMX35 299 help 300 Include support for VPR200 platform. This includes specific 301 configurations for the board and its peripherals. 302 303endif 304 305if ARCH_MULTI_V4T 306 307config SOC_IMX1 308 bool "i.MX1 support" 309 select CPU_ARM920T 310 select MXC_AVIC 311 select PINCTRL_IMX1 312 help 313 This enables support for Freescale i.MX1 processor 314 315endif 316 317if ARCH_MULTI_V5 318 319config SOC_IMX25 320 bool "i.MX25 support" 321 select ARCH_MXC_IOMUX_V3 322 select CPU_ARM926T 323 select MXC_AVIC 324 select PINCTRL_IMX25 325 help 326 This enables support for Freescale i.MX25 processor 327 328config SOC_IMX27 329 bool "i.MX27 support" 330 select IMX_HAVE_IOMUX_V1 331 select CPU_ARM926T 332 select MXC_AVIC 333 select PINCTRL_IMX27 334 help 335 This enables support for Freescale i.MX27 processor 336 337endif 338 339if ARCH_MULTI_V7 340 341comment "Cortex-A platforms" 342 343config SOC_IMX5 344 bool 345 select HAVE_IMX_SRC 346 select MXC_TZIC 347 348config SOC_IMX50 349 bool "i.MX50 support" 350 select PINCTRL_IMX50 351 select SOC_IMX5 352 353 help 354 This enables support for Freescale i.MX50 processor. 355 356config SOC_IMX51 357 bool "i.MX51 support" 358 select PINCTRL_IMX51 359 select SOC_IMX5 360 help 361 This enables support for Freescale i.MX51 processor 362 363config SOC_IMX53 364 bool "i.MX53 support" 365 select PINCTRL_IMX53 366 select SOC_IMX5 367 368 help 369 This enables support for Freescale i.MX53 processor. 370 371config SOC_IMX6 372 bool 373 select ARM_CPU_SUSPEND if (PM || CPU_IDLE) 374 select ARM_GIC 375 select HAVE_IMX_ANATOP 376 select HAVE_IMX_GPC 377 select HAVE_IMX_MMDC 378 select HAVE_IMX_SRC 379 select MFD_SYSCON 380 select PL310_ERRATA_769419 if CACHE_L2X0 381 382config SOC_IMX6Q 383 bool "i.MX6 Quad/DualLite support" 384 select ARM_ERRATA_764369 if SMP 385 select ARM_ERRATA_754322 386 select ARM_ERRATA_775420 387 select HAVE_ARM_SCU if SMP 388 select HAVE_ARM_TWD 389 select PINCTRL_IMX6Q 390 select SOC_IMX6 391 392 help 393 This enables support for Freescale i.MX6 Quad processor. 394 395config SOC_IMX6SL 396 bool "i.MX6 SoloLite support" 397 select ARM_ERRATA_754322 398 select ARM_ERRATA_775420 399 select PINCTRL_IMX6SL 400 select SOC_IMX6 401 402 help 403 This enables support for Freescale i.MX6 SoloLite processor. 404 405config SOC_IMX6SLL 406 bool "i.MX6 SoloLiteLite support" 407 select ARM_ERRATA_754322 408 select ARM_ERRATA_775420 409 select PINCTRL_IMX6SLL 410 select SOC_IMX6 411 412 help 413 This enables support for Freescale i.MX6 SoloLiteLite processor. 414 415config SOC_IMX6SX 416 bool "i.MX6 SoloX support" 417 select ARM_ERRATA_754322 418 select ARM_ERRATA_775420 419 select PINCTRL_IMX6SX 420 select SOC_IMX6 421 422 help 423 This enables support for Freescale i.MX6 SoloX processor. 424 425config SOC_IMX6UL 426 bool "i.MX6 UltraLite support" 427 select PINCTRL_IMX6UL 428 select SOC_IMX6 429 select ARM_ERRATA_814220 430 431 help 432 This enables support for Freescale i.MX6 UltraLite processor. 433 434config SOC_LS1021A 435 bool "Freescale LS1021A support" 436 select ARM_GIC 437 select HAVE_ARM_ARCH_TIMER 438 select ZONE_DMA if ARM_LPAE 439 help 440 This enables support for Freescale LS1021A processor. 441 442endif 443 444if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M 445 446comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms" 447 448config SOC_IMX7D_CA7 449 bool 450 select ARM_GIC 451 select HAVE_ARM_ARCH_TIMER 452 select HAVE_IMX_ANATOP 453 select HAVE_IMX_MMDC 454 select HAVE_IMX_SRC 455 select IMX_GPCV2 456 457config SOC_IMX7D_CM4 458 bool 459 select ARMV7M_SYSTICK 460 461config SOC_IMX7D 462 bool "i.MX7 Dual support" 463 select PINCTRL_IMX7D 464 select SOC_IMX7D_CA7 if ARCH_MULTI_V7 465 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M 466 select ARM_ERRATA_814220 if ARCH_MULTI_V7 467 help 468 This enables support for Freescale i.MX7 Dual processor. 469 470config SOC_IMX7ULP 471 bool "i.MX7ULP support" 472 select CLKSRC_IMX_TPM 473 select PINCTRL_IMX7ULP 474 select SOC_IMX7D_CA7 if ARCH_MULTI_V7 475 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M 476 help 477 This enables support for Freescale i.MX7 Ultra Low Power processor. 478 479config SOC_VF610 480 bool "Vybrid Family VF610 support" 481 select ARM_GIC if ARCH_MULTI_V7 482 select PINCTRL_VF610 483 484 help 485 This enables support for Freescale Vybrid VF610 processor. 486 487choice 488 prompt "Clocksource for scheduler clock" 489 depends on SOC_VF610 490 default VF_USE_ARM_GLOBAL_TIMER 491 492 config VF_USE_ARM_GLOBAL_TIMER 493 bool "Use ARM Global Timer" 494 depends on ARCH_MULTI_V7 495 select ARM_GLOBAL_TIMER 496 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 497 help 498 Use the ARM Global Timer as clocksource 499 500 config VF_USE_PIT_TIMER 501 bool "Use PIT timer" 502 select VF_PIT_TIMER 503 help 504 Use SoC Periodic Interrupt Timer (PIT) as clocksource 505 506endchoice 507 508endif 509 510source "arch/arm/mach-imx/devices/Kconfig" 511 512endif 513