1 # SPDX-License-Identifier: GPL-2.0-only
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
7 select GENERIC_IRQ_CHIP
14 Support for Freescale MXC/iMX-based family of processors
24 config MXC_DEBUG_BOARD
25 bool "Enable MXC debug board(for 3-stack)"
26 depends on MACH_MX27_3DS || MACH_MX31_3DS || MACH_MX35_3DS
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.
36 config HAVE_IMX_ANATOP
41 select PM_GENERIC_DOMAINS if PM
48 select ARCH_HAS_RESET_CONTROLLER
50 config IMX_HAVE_IOMUX_V1
53 config ARCH_MXC_IOMUX_V3
59 select IMX_HAVE_IOMUX_V1
65 select IMX_HAVE_IOMUX_V1
76 select ARCH_MXC_IOMUX_V3
82 comment "MX21 platforms:"
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
92 Include support for MX21ADS platform. This includes specific
93 configurations for the board and its peripherals.
95 comment "MX27 platforms:"
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
107 Include support for MX27ADS platform. This includes specific
108 configurations for the board and its peripherals.
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
127 Include support for MX27PDK platform. This includes specific
128 configurations for the board and its peripherals.
130 config 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
143 Include support for Visstrim_m10 platform and its different variants.
144 This includes specific configurations for the board and its
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
163 Include support for phyCARD-s (aka pca100) platform. This
164 includes specific configurations for the module and its peripherals.
167 bool "Support i.MX27 platforms from device tree"
170 Include support for Freescale i.MX27 based platforms
171 using the device tree for discovery
177 comment "MX31 platforms:"
180 bool "Support MX31ADS platforms"
182 select IMX_HAVE_PLATFORM_IMX_I2C
183 select IMX_HAVE_PLATFORM_IMX_SSI
184 select IMX_HAVE_PLATFORM_IMX_UART
187 Include support for MX31ADS platform. This includes specific
188 configurations for the board and its peripherals.
190 config 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
196 Include support for the Wolfson Microelectronics 1133-EV1 PMU
197 and audio module for the MX31ADS platform.
199 config 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
209 Include support for mx31 based LILLY1131 modules. This includes
210 specific configurations for the board and its peripherals.
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
225 Include support for MX31 LITEKIT platform. This includes specific
226 configurations for the board and its peripherals.
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
242 Include support for Phytec pcm037 platform. This includes
243 specific configurations for the board and its peripherals.
245 config 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
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.
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
272 Include support for MX31PDK (3DS) platform. This includes specific
273 configurations for the board and its peripherals.
275 config 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
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.
284 config 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
299 Include support for mx31moboard platform. This includes specific
300 configurations for the board and its peripherals.
303 bool "Support Dave/DENX QongEVB-LITE platform"
304 select IMX_HAVE_PLATFORM_IMX2_WDT
305 select IMX_HAVE_PLATFORM_IMX_UART
308 Include support for Dave/DENX QongEVB-LITE platform. This includes
309 specific configurations for the board and its peripherals.
311 config 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
323 Include support for Atmark Armadillo-500 platform. This includes
324 specific configurations for the board and its peripherals.
326 config MACH_KZM_ARM11_01
327 bool "Support KZM-ARM11-01(Kyoto Microcomputer)"
328 select IMX_HAVE_PLATFORM_IMX_UART
331 Include support for KZM-ARM11-01. This includes specific
332 configurations for the board and its peripherals.
335 bool "Support Buglabs BUGBase platform"
337 select IMX_HAVE_PLATFORM_IMX_UART
340 Include support for BUGBase 1.3 platform. This includes specific
341 configurations for the board and its peripherals.
344 bool "Support i.MX31 platforms from device tree"
347 Include support for Freescale i.MX31 based platforms
348 using the device tree for discovery.
350 comment "MX35 platforms:"
353 bool "Support i.MX35 platforms from device tree"
356 Include support for Freescale i.MX35 based platforms
357 using the device tree for discovery.
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
374 Include support for Phytec pcm043 platform. This includes
375 specific configurations for the board and its peripherals.
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
392 Include support for MX35PDK platform. This includes specific
393 configurations for the board and its peripherals.
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
408 Include support for VPR200 platform. This includes specific
409 configurations for the board and its peripherals.
413 comment "Device tree only"
423 This enables support for Freescale i.MX1 processor
430 bool "i.MX25 support"
431 select ARCH_MXC_IOMUX_V3
436 This enables support for Freescale i.MX25 processor
441 comment "Cortex-A platforms"
449 bool "i.MX50 support"
454 This enables support for Freescale i.MX50 processor.
457 bool "i.MX51 support"
461 This enables support for Freescale i.MX51 processor
464 bool "i.MX53 support"
469 This enables support for Freescale i.MX53 processor.
473 select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
475 select HAVE_IMX_ANATOP
480 select PL310_ERRATA_769419 if CACHE_L2X0
483 bool "i.MX6 Quad/DualLite support"
484 select ARM_ERRATA_764369 if SMP
485 select ARM_ERRATA_754322
486 select ARM_ERRATA_775420
487 select HAVE_ARM_SCU if SMP
493 This enables support for Freescale i.MX6 Quad processor.
496 bool "i.MX6 SoloLite support"
497 select ARM_ERRATA_754322
498 select ARM_ERRATA_775420
499 select PINCTRL_IMX6SL
503 This enables support for Freescale i.MX6 SoloLite processor.
506 bool "i.MX6 SoloLiteLite support"
507 select ARM_ERRATA_754322
508 select ARM_ERRATA_775420
509 select PINCTRL_IMX6SLL
513 This enables support for Freescale i.MX6 SoloLiteLite processor.
516 bool "i.MX6 SoloX support"
517 select ARM_ERRATA_754322
518 select ARM_ERRATA_775420
519 select PINCTRL_IMX6SX
523 This enables support for Freescale i.MX6 SoloX processor.
526 bool "i.MX6 UltraLite support"
527 select PINCTRL_IMX6UL
529 select ARM_ERRATA_814220
532 This enables support for Freescale i.MX6 UltraLite processor.
535 bool "Freescale LS1021A support"
537 select HAVE_ARM_ARCH_TIMER
538 select ZONE_DMA if ARM_LPAE
540 This enables support for Freescale LS1021A processor.
544 comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
546 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
551 select HAVE_ARM_ARCH_TIMER
552 select HAVE_IMX_ANATOP
559 select ARMV7M_SYSTICK
562 bool "i.MX7 Dual support"
564 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
565 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
566 select ARM_ERRATA_814220 if ARCH_MULTI_V7
568 This enables support for Freescale i.MX7 Dual processor.
571 bool "i.MX7ULP support"
572 select CLKSRC_IMX_TPM
573 select PINCTRL_IMX7ULP
574 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
575 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
577 This enables support for Freescale i.MX7 Ultra Low Power processor.
580 bool "Vybrid Family VF610 support"
581 select ARM_GIC if ARCH_MULTI_V7
585 This enables support for Freescale Vybrid VF610 processor.
588 prompt "Clocksource for scheduler clock"
590 default VF_USE_ARM_GLOBAL_TIMER
592 config VF_USE_ARM_GLOBAL_TIMER
593 bool "Use ARM Global Timer"
594 depends on ARCH_MULTI_V7
595 select ARM_GLOBAL_TIMER
596 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
598 Use the ARM Global Timer as clocksource
600 config VF_USE_PIT_TIMER
604 Use SoC Periodic Interrupt Timer (PIT) as clocksource
610 source "arch/arm/mach-imx/devices/Kconfig"