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