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