Merge tag 'zynqmp-soc-for-v5.7' of https://github.com/Xilinx/linux-xlnx into arm/soc
[linux-2.6-microblaze.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_GIC
475         select HAVE_IMX_ANATOP
476         select HAVE_IMX_GPC
477         select HAVE_IMX_MMDC
478         select HAVE_IMX_SRC
479         select MFD_SYSCON
480         select PL310_ERRATA_769419 if CACHE_L2X0
481
482 config SOC_IMX6Q
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
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 ARM_ERRATA_754322
498         select ARM_ERRATA_775420
499         select PINCTRL_IMX6SL
500         select SOC_IMX6
501
502         help
503           This enables support for Freescale i.MX6 SoloLite processor.
504
505 config SOC_IMX6SLL
506         bool "i.MX6 SoloLiteLite support"
507         select ARM_ERRATA_754322
508         select ARM_ERRATA_775420
509         select PINCTRL_IMX6SLL
510         select SOC_IMX6
511
512         help
513           This enables support for Freescale i.MX6 SoloLiteLite processor.
514
515 config SOC_IMX6SX
516         bool "i.MX6 SoloX support"
517         select ARM_ERRATA_754322
518         select ARM_ERRATA_775420
519         select PINCTRL_IMX6SX
520         select SOC_IMX6
521
522         help
523           This enables support for Freescale i.MX6 SoloX processor.
524
525 config SOC_IMX6UL
526         bool "i.MX6 UltraLite support"
527         select PINCTRL_IMX6UL
528         select SOC_IMX6
529         select ARM_ERRATA_814220
530
531         help
532           This enables support for Freescale i.MX6 UltraLite processor.
533
534 config SOC_LS1021A
535         bool "Freescale LS1021A support"
536         select ARM_GIC
537         select HAVE_ARM_ARCH_TIMER
538         select ZONE_DMA if ARM_LPAE
539         help
540           This enables support for Freescale LS1021A processor.
541
542 endif
543
544 comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
545
546 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
547
548 config SOC_IMX7D_CA7
549         bool
550         select ARM_GIC
551         select HAVE_ARM_ARCH_TIMER
552         select HAVE_IMX_ANATOP
553         select HAVE_IMX_MMDC
554         select HAVE_IMX_SRC
555         select IMX_GPCV2
556
557 config SOC_IMX7D_CM4
558         bool
559         select ARMV7M_SYSTICK
560
561 config SOC_IMX7D
562         bool "i.MX7 Dual support"
563         select PINCTRL_IMX7D
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
567         help
568                 This enables support for Freescale i.MX7 Dual processor.
569
570 config SOC_IMX7ULP
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
576         help
577           This enables support for Freescale i.MX7 Ultra Low Power processor.
578
579 config SOC_VF610
580         bool "Vybrid Family VF610 support"
581         select ARM_GIC if ARCH_MULTI_V7
582         select PINCTRL_VF610
583
584         help
585           This enables support for Freescale Vybrid VF610 processor.
586
587 choice
588         prompt "Clocksource for scheduler clock"
589         depends on SOC_VF610
590         default VF_USE_ARM_GLOBAL_TIMER
591
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
597                 help
598                   Use the ARM Global Timer as clocksource
599
600         config VF_USE_PIT_TIMER
601                 bool "Use PIT timer"
602                 select VF_PIT_TIMER
603                 help
604                   Use SoC Periodic Interrupt Timer (PIT) as clocksource
605
606 endchoice
607
608 endif
609
610 source "arch/arm/mach-imx/devices/Kconfig"
611
612 endif