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