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