]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/arm/mach-imx/Kconfig
treewide: Add SPDX license identifier - Makefile/Kconfig
[mirror_ubuntu-focal-kernel.git] / arch / arm / mach-imx / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig 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
16 if ARCH_MXC
17
18 config MXC_TZIC
19 bool
20
21 config MXC_AVIC
22 bool
23
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
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
36 config HAVE_IMX_ANATOP
37 bool
38
39 config HAVE_IMX_GPC
40 bool
41 select PM_GENERIC_DOMAINS if PM
42
43 config HAVE_IMX_MMDC
44 bool
45
46 config HAVE_IMX_SRC
47 def_bool y if SMP
48 select ARCH_HAS_RESET_CONTROLLER
49
50 config IMX_HAVE_IOMUX_V1
51 bool
52
53 config ARCH_MXC_IOMUX_V3
54 bool
55
56 config SOC_IMX21
57 bool
58 select CPU_ARM926T
59 select IMX_HAVE_IOMUX_V1
60 select MXC_AVIC
61
62 config SOC_IMX27
63 bool
64 select CPU_ARM926T
65 select IMX_HAVE_IOMUX_V1
66 select MXC_AVIC
67 select PINCTRL_IMX27
68
69 config SOC_IMX31
70 bool
71 select CPU_V6
72 select MXC_AVIC
73
74 config SOC_IMX35
75 bool
76 select ARCH_MXC_IOMUX_V3
77 select MXC_AVIC
78 select PINCTRL_IMX35
79
80 if ARCH_MULTI_V5
81
82 comment "MX21 platforms:"
83
84 config 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
95 comment "MX27 platforms:"
96
97 config 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
110 config 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
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
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
147 config 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
166 config 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
173 endif
174
175 if ARCH_MULTI_V6
176
177 comment "MX31 platforms:"
178
179 config 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
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
195 help
196 Include support for the Wolfson Microelectronics 1133-EV1 PMU
197 and audio module for the MX31ADS platform.
198
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
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
212 config 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
228 config 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
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
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
255 config 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
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
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
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
297 select SOC_IMX31
298 help
299 Include support for mx31moboard platform. This includes specific
300 configurations for the board and its peripherals.
301
302 config 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
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
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
326 config 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
334 config 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
343 config 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
350 comment "MX35 platforms:"
351
352 config 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
359 config 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
377 config 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
395 config 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
411 endif
412
413 comment "Device tree only"
414
415 if ARCH_MULTI_V4T
416
417 config 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
425 endif
426
427 if ARCH_MULTI_V5
428
429 config 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
437 endif
438
439 if ARCH_MULTI_V7
440
441 comment "Cortex-A platforms"
442
443 config SOC_IMX5
444 bool
445 select HAVE_IMX_SRC
446 select MXC_TZIC
447
448 config 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
456 config 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
463 config 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
471 config 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
484 config 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
495 config 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
503 config 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
511 config 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
519 config SOC_IMX6UL
520 bool "i.MX6 UltraLite support"
521 select PINCTRL_IMX6UL
522 select SOC_IMX6
523
524 help
525 This enables support for Freescale i.MX6 UltraLite processor.
526
527 config SOC_LS1021A
528 bool "Freescale LS1021A support"
529 select ARM_GIC
530 select HAVE_ARM_ARCH_TIMER
531 select ZONE_DMA if ARM_LPAE
532 help
533 This enables support for Freescale LS1021A processor.
534
535 endif
536
537 comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
538
539 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
540
541 config SOC_IMX7D_CA7
542 bool
543 select ARM_GIC
544 select HAVE_ARM_ARCH_TIMER
545 select HAVE_IMX_ANATOP
546 select HAVE_IMX_MMDC
547 select HAVE_IMX_SRC
548 select IMX_GPCV2
549
550 config SOC_IMX7D_CM4
551 bool
552 select ARMV7M_SYSTICK
553
554 config SOC_IMX7D
555 bool "i.MX7 Dual support"
556 select PINCTRL_IMX7D
557 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
558 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
559 help
560 This enables support for Freescale i.MX7 Dual processor.
561
562 config SOC_IMX7ULP
563 bool "i.MX7ULP support"
564 select CLKSRC_IMX_TPM
565 select PINCTRL_IMX7ULP
566 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
567 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
568 help
569 This enables support for Freescale i.MX7 Ultra Low Power processor.
570
571 config SOC_VF610
572 bool "Vybrid Family VF610 support"
573 select ARM_GIC if ARCH_MULTI_V7
574 select PINCTRL_VF610
575
576 help
577 This enables support for Freescale Vybrid VF610 processor.
578
579 choice
580 prompt "Clocksource for scheduler clock"
581 depends on SOC_VF610
582 default VF_USE_ARM_GLOBAL_TIMER
583
584 config VF_USE_ARM_GLOBAL_TIMER
585 bool "Use ARM Global Timer"
586 depends on ARCH_MULTI_V7
587 select ARM_GLOBAL_TIMER
588 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
589 help
590 Use the ARM Global Timer as clocksource
591
592 config VF_USE_PIT_TIMER
593 bool "Use PIT timer"
594 select VF_PIT_TIMER
595 help
596 Use SoC Periodic Interrupt Timer (PIT) as clocksource
597
598 endchoice
599
600 endif
601
602 source "arch/arm/mach-imx/devices/Kconfig"
603
604 endif