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