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