xref: /openbmc/linux/arch/arm/mach-imx/Kconfig (revision 7e567624)
1menuconfig 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 CLKSRC_IMX_GPT
7	select GENERIC_IRQ_CHIP
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
15if ARCH_MXC
16
17config MXC_TZIC
18	bool
19
20config MXC_AVIC
21	bool
22
23config 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
35config HAVE_EPIT
36	bool
37
38config 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
47config ARCH_HAS_RNGA
48	bool
49
50config HAVE_IMX_ANATOP
51	bool
52
53config HAVE_IMX_GPC
54	bool
55	select PM_GENERIC_DOMAINS if PM
56
57config HAVE_IMX_MMDC
58	bool
59
60config HAVE_IMX_SRC
61	def_bool y if SMP
62	select ARCH_HAS_RESET_CONTROLLER
63
64config IMX_HAVE_IOMUX_V1
65	bool
66
67config ARCH_MXC_IOMUX_V3
68	bool
69
70config SOC_IMX1
71	bool
72	select CPU_ARM920T
73	select IMX_HAVE_IOMUX_V1
74	select MXC_AVIC
75	select PINCTRL_IMX1
76
77config SOC_IMX21
78	bool
79	select CPU_ARM926T
80	select IMX_HAVE_IOMUX_V1
81	select MXC_AVIC
82
83config SOC_IMX27
84	bool
85	select CPU_ARM926T
86	select IMX_HAVE_IOMUX_V1
87	select MXC_AVIC
88	select PINCTRL_IMX27
89
90config SOC_IMX31
91	bool
92	select CPU_V6
93	select IMX_HAVE_PLATFORM_MXC_RNGA
94	select MXC_AVIC
95	select SMP_ON_UP if SMP
96
97config SOC_IMX35
98	bool
99	select ARCH_MXC_IOMUX_V3
100	select HAVE_EPIT
101	select MXC_AVIC
102	select PINCTRL_IMX35
103	select SMP_ON_UP if SMP
104
105if ARCH_MULTI_V4T
106
107comment "MX1 platforms:"
108
109config MACH_SCB9328
110	bool "Synertronixx scb9328"
111	select IMX_HAVE_PLATFORM_IMX_UART
112	select SOC_IMX1
113	help
114	  Say Y here if you are using a Synertronixx scb9328 board
115
116config MACH_APF9328
117	bool "APF9328"
118	select IMX_HAVE_PLATFORM_IMX_I2C
119	select IMX_HAVE_PLATFORM_IMX_UART
120	select SOC_IMX1
121	help
122	  Say Yes here if you are using the Armadeus APF9328 development board
123
124config MACH_IMX1_DT
125	bool "Support i.MX1 platforms from device tree"
126	select SOC_IMX1
127	help
128	  Include support for Freescale i.MX1 based platforms
129	  using the device tree for discovery.
130
131endif
132
133if ARCH_MULTI_V5
134
135comment "MX21 platforms:"
136
137config MACH_MX21ADS
138	bool "MX21ADS platform"
139	select IMX_HAVE_PLATFORM_IMX_FB
140	select IMX_HAVE_PLATFORM_IMX_UART
141	select IMX_HAVE_PLATFORM_MXC_MMC
142	select IMX_HAVE_PLATFORM_MXC_NAND
143	select SOC_IMX21
144	help
145	  Include support for MX21ADS platform. This includes specific
146	  configurations for the board and its peripherals.
147
148comment "MX27 platforms:"
149
150config MACH_MX27ADS
151	bool "MX27ADS platform"
152	select IMX_HAVE_PLATFORM_IMX_FB
153	select IMX_HAVE_PLATFORM_IMX_I2C
154	select IMX_HAVE_PLATFORM_IMX_UART
155	select IMX_HAVE_PLATFORM_MXC_MMC
156	select IMX_HAVE_PLATFORM_MXC_NAND
157	select IMX_HAVE_PLATFORM_MXC_W1
158	select SOC_IMX27
159	help
160	  Include support for MX27ADS platform. This includes specific
161	  configurations for the board and its peripherals.
162
163config MACH_MX27_3DS
164	bool "MX27PDK platform"
165	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
166	select IMX_HAVE_PLATFORM_IMX2_WDT
167	select IMX_HAVE_PLATFORM_IMX_FB
168	select IMX_HAVE_PLATFORM_IMX_I2C
169	select IMX_HAVE_PLATFORM_IMX_KEYPAD
170	select IMX_HAVE_PLATFORM_IMX_SSI
171	select IMX_HAVE_PLATFORM_IMX_UART
172	select IMX_HAVE_PLATFORM_MX2_CAMERA
173	select IMX_HAVE_PLATFORM_MXC_EHCI
174	select IMX_HAVE_PLATFORM_MXC_MMC
175	select IMX_HAVE_PLATFORM_SPI_IMX
176	select MXC_DEBUG_BOARD
177	select USB_ULPI_VIEWPORT if USB_ULPI
178	select SOC_IMX27
179	help
180	  Include support for MX27PDK platform. This includes specific
181	  configurations for the board and its peripherals.
182
183config MACH_IMX27_VISSTRIM_M10
184	bool "Vista Silicon i.MX27 Visstrim_m10"
185	select IMX_HAVE_PLATFORM_GPIO_KEYS
186	select IMX_HAVE_PLATFORM_IMX_I2C
187	select IMX_HAVE_PLATFORM_IMX_SSI
188	select IMX_HAVE_PLATFORM_IMX_UART
189	select IMX_HAVE_PLATFORM_MX2_CAMERA
190	select IMX_HAVE_PLATFORM_MX2_EMMA
191	select IMX_HAVE_PLATFORM_MXC_EHCI
192	select IMX_HAVE_PLATFORM_MXC_MMC
193	select LEDS_GPIO_REGISTER
194	select SOC_IMX27
195	help
196	  Include support for Visstrim_m10 platform and its different variants.
197	  This includes specific configurations for the board and its
198	  peripherals.
199
200config MACH_PCA100
201	bool "Phytec phyCARD-s (pca100)"
202	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
203	select IMX_HAVE_PLATFORM_IMX2_WDT
204	select IMX_HAVE_PLATFORM_IMX_FB
205	select IMX_HAVE_PLATFORM_IMX_I2C
206	select IMX_HAVE_PLATFORM_IMX_SSI
207	select IMX_HAVE_PLATFORM_IMX_UART
208	select IMX_HAVE_PLATFORM_MXC_EHCI
209	select IMX_HAVE_PLATFORM_MXC_MMC
210	select IMX_HAVE_PLATFORM_MXC_NAND
211	select IMX_HAVE_PLATFORM_MXC_W1
212	select IMX_HAVE_PLATFORM_SPI_IMX
213	select USB_ULPI_VIEWPORT if USB_ULPI
214	select SOC_IMX27
215	help
216	  Include support for phyCARD-s (aka pca100) platform. This
217	  includes specific configurations for the module and its peripherals.
218
219config MACH_IMX27_DT
220	bool "Support i.MX27 platforms from device tree"
221	select SOC_IMX27
222	help
223	  Include support for Freescale i.MX27 based platforms
224	  using the device tree for discovery
225
226endif
227
228if ARCH_MULTI_V6
229
230comment "MX31 platforms:"
231
232config MACH_MX31ADS
233	bool "Support MX31ADS platforms"
234	default y
235	select IMX_HAVE_PLATFORM_IMX_I2C
236	select IMX_HAVE_PLATFORM_IMX_SSI
237	select IMX_HAVE_PLATFORM_IMX_UART
238	select SOC_IMX31
239	help
240	  Include support for MX31ADS platform. This includes specific
241	  configurations for the board and its peripherals.
242
243config MACH_MX31ADS_WM1133_EV1
244	bool "Support Wolfson Microelectronics 1133-EV1 module"
245	depends on MACH_MX31ADS
246	depends on MFD_WM8350_I2C
247	depends on REGULATOR_WM8350 = y
248	help
249	  Include support for the Wolfson Microelectronics 1133-EV1 PMU
250	  and audio module for the MX31ADS platform.
251
252config MACH_MX31LILLY
253	bool "Support MX31 LILLY-1131 platforms (INCO startec)"
254	select IMX_HAVE_PLATFORM_IMX_UART
255	select IMX_HAVE_PLATFORM_IPU_CORE
256	select IMX_HAVE_PLATFORM_MXC_EHCI
257	select IMX_HAVE_PLATFORM_MXC_MMC
258	select IMX_HAVE_PLATFORM_SPI_IMX
259	select USB_ULPI_VIEWPORT if USB_ULPI
260	select SOC_IMX31
261	help
262	  Include support for mx31 based LILLY1131 modules. This includes
263	  specific configurations for the board and its peripherals.
264
265config MACH_MX31LITE
266	bool "Support MX31 LITEKIT (LogicPD)"
267	select IMX_HAVE_PLATFORM_IMX2_WDT
268	select IMX_HAVE_PLATFORM_IMX_UART
269	select IMX_HAVE_PLATFORM_MXC_EHCI
270	select IMX_HAVE_PLATFORM_MXC_MMC
271	select IMX_HAVE_PLATFORM_MXC_NAND
272	select IMX_HAVE_PLATFORM_MXC_RTC
273	select IMX_HAVE_PLATFORM_SPI_IMX
274	select LEDS_GPIO_REGISTER
275	select USB_ULPI_VIEWPORT if USB_ULPI
276	select SOC_IMX31
277	help
278	  Include support for MX31 LITEKIT platform. This includes specific
279	  configurations for the board and its peripherals.
280
281config MACH_PCM037
282	bool "Support Phytec pcm037 (i.MX31) platforms"
283	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
284	select IMX_HAVE_PLATFORM_IMX2_WDT
285	select IMX_HAVE_PLATFORM_IMX_I2C
286	select IMX_HAVE_PLATFORM_IMX_UART
287	select IMX_HAVE_PLATFORM_IPU_CORE
288	select IMX_HAVE_PLATFORM_MXC_EHCI
289	select IMX_HAVE_PLATFORM_MXC_MMC
290	select IMX_HAVE_PLATFORM_MXC_NAND
291	select IMX_HAVE_PLATFORM_MXC_W1
292	select USB_ULPI_VIEWPORT if USB_ULPI
293	select SOC_IMX31
294	help
295	  Include support for Phytec pcm037 platform. This includes
296	  specific configurations for the board and its peripherals.
297
298config MACH_PCM037_EET
299	bool "Support pcm037 EET board extensions"
300	depends on MACH_PCM037
301	select IMX_HAVE_PLATFORM_GPIO_KEYS
302	select IMX_HAVE_PLATFORM_SPI_IMX
303	help
304	  Add support for PCM037 EET baseboard extensions. If you are using the
305	  OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel
306	  command-line parameter.
307
308config MACH_MX31_3DS
309	bool "Support MX31PDK (3DS)"
310	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
311	select IMX_HAVE_PLATFORM_IMX2_WDT
312	select IMX_HAVE_PLATFORM_IMX_I2C
313	select IMX_HAVE_PLATFORM_IMX_KEYPAD
314	select IMX_HAVE_PLATFORM_IMX_SSI
315	select IMX_HAVE_PLATFORM_IMX_UART
316	select IMX_HAVE_PLATFORM_IPU_CORE
317	select IMX_HAVE_PLATFORM_MXC_EHCI
318	select IMX_HAVE_PLATFORM_MXC_MMC
319	select IMX_HAVE_PLATFORM_MXC_NAND
320	select IMX_HAVE_PLATFORM_SPI_IMX
321	select MXC_DEBUG_BOARD
322	select USB_ULPI_VIEWPORT if USB_ULPI
323	select SOC_IMX31
324	help
325	  Include support for MX31PDK (3DS) platform. This includes specific
326	  configurations for the board and its peripherals.
327
328config MACH_MX31_3DS_MXC_NAND_USE_BBT
329	bool "Make the MXC NAND driver use the in flash Bad Block Table"
330	depends on MACH_MX31_3DS
331	depends on MTD_NAND_MXC
332	help
333	  Enable this if you want that the MXC NAND driver uses the in flash
334	  Bad Block Table to know what blocks are bad instead of scanning the
335	  entire flash looking for bad block markers.
336
337config MACH_MX31MOBOARD
338	bool "Support mx31moboard platforms (EPFL Mobots group)"
339	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
340	select IMX_HAVE_PLATFORM_IMX2_WDT
341	select IMX_HAVE_PLATFORM_IMX_I2C
342	select IMX_HAVE_PLATFORM_IMX_SSI
343	select IMX_HAVE_PLATFORM_IMX_UART
344	select IMX_HAVE_PLATFORM_IPU_CORE
345	select IMX_HAVE_PLATFORM_MXC_EHCI
346	select IMX_HAVE_PLATFORM_MXC_MMC
347	select IMX_HAVE_PLATFORM_SPI_IMX
348	select LEDS_GPIO_REGISTER
349	select USB_ULPI_VIEWPORT if USB_ULPI
350	select SOC_IMX31
351	help
352	  Include support for mx31moboard platform. This includes specific
353	  configurations for the board and its peripherals.
354
355config MACH_QONG
356	bool "Support Dave/DENX QongEVB-LITE platform"
357	select IMX_HAVE_PLATFORM_IMX2_WDT
358	select IMX_HAVE_PLATFORM_IMX_UART
359	select SOC_IMX31
360	help
361	  Include support for Dave/DENX QongEVB-LITE platform. This includes
362	  specific configurations for the board and its peripherals.
363
364config MACH_ARMADILLO5X0
365	bool "Support Atmark Armadillo-500 Development Base Board"
366	select IMX_HAVE_PLATFORM_GPIO_KEYS
367	select IMX_HAVE_PLATFORM_IMX_I2C
368	select IMX_HAVE_PLATFORM_IMX_UART
369	select IMX_HAVE_PLATFORM_IPU_CORE
370	select IMX_HAVE_PLATFORM_MXC_EHCI
371	select IMX_HAVE_PLATFORM_MXC_MMC
372	select IMX_HAVE_PLATFORM_MXC_NAND
373	select USB_ULPI_VIEWPORT if USB_ULPI
374	select SOC_IMX31
375	help
376	  Include support for Atmark Armadillo-500 platform. This includes
377	  specific configurations for the board and its peripherals.
378
379config MACH_KZM_ARM11_01
380	bool "Support KZM-ARM11-01(Kyoto Microcomputer)"
381	select IMX_HAVE_PLATFORM_IMX_UART
382	select SOC_IMX31
383	help
384	  Include support for KZM-ARM11-01. This includes specific
385	  configurations for the board and its peripherals.
386
387config MACH_BUG
388	bool "Support Buglabs BUGBase platform"
389	default y
390	select IMX_HAVE_PLATFORM_IMX_UART
391	select SOC_IMX31
392	help
393	  Include support for BUGBase 1.3 platform. This includes specific
394	  configurations for the board and its peripherals.
395
396config MACH_IMX31_DT
397	bool "Support i.MX31 platforms from device tree"
398	select SOC_IMX31
399	help
400	  Include support for Freescale i.MX31 based platforms
401	  using the device tree for discovery.
402
403comment "MX35 platforms:"
404
405config MACH_IMX35_DT
406	bool "Support i.MX35 platforms from device tree"
407	select SOC_IMX35
408	help
409	  Include support for Freescale i.MX35 based platforms
410	  using the device tree for discovery.
411
412config MACH_PCM043
413	bool "Support Phytec pcm043 (i.MX35) platforms"
414	select IMX_HAVE_PLATFORM_FLEXCAN
415	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
416	select IMX_HAVE_PLATFORM_IMX2_WDT
417	select IMX_HAVE_PLATFORM_IMX_I2C
418	select IMX_HAVE_PLATFORM_IMX_SSI
419	select IMX_HAVE_PLATFORM_IMX_UART
420	select IMX_HAVE_PLATFORM_IPU_CORE
421	select IMX_HAVE_PLATFORM_MXC_EHCI
422	select IMX_HAVE_PLATFORM_MXC_NAND
423	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
424	select USB_ULPI_VIEWPORT if USB_ULPI
425	select SOC_IMX35
426	help
427	  Include support for Phytec pcm043 platform. This includes
428	  specific configurations for the board and its peripherals.
429
430config MACH_MX35_3DS
431	bool "Support MX35PDK platform"
432	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
433	select IMX_HAVE_PLATFORM_IMX2_WDT
434	select IMX_HAVE_PLATFORM_IMX_FB
435	select IMX_HAVE_PLATFORM_IMX_I2C
436	select IMX_HAVE_PLATFORM_IMX_UART
437	select IMX_HAVE_PLATFORM_IPU_CORE
438	select IMX_HAVE_PLATFORM_MXC_EHCI
439	select IMX_HAVE_PLATFORM_MXC_NAND
440	select IMX_HAVE_PLATFORM_MXC_RTC
441	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
442	select MXC_DEBUG_BOARD
443	select SOC_IMX35
444	help
445	  Include support for MX35PDK platform. This includes specific
446	  configurations for the board and its peripherals.
447
448config MACH_VPR200
449	bool "Support VPR200 platform"
450	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
451	select IMX_HAVE_PLATFORM_GPIO_KEYS
452	select IMX_HAVE_PLATFORM_IMX2_WDT
453	select IMX_HAVE_PLATFORM_IMX_I2C
454	select IMX_HAVE_PLATFORM_IMX_UART
455	select IMX_HAVE_PLATFORM_IPU_CORE
456	select IMX_HAVE_PLATFORM_MXC_EHCI
457	select IMX_HAVE_PLATFORM_MXC_NAND
458	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
459	select SOC_IMX35
460	help
461	  Include support for VPR200 platform. This includes specific
462	  configurations for the board and its peripherals.
463
464endif
465
466comment "Device tree only"
467
468if ARCH_MULTI_V5
469
470config SOC_IMX25
471	bool "i.MX25 support"
472	select ARCH_MXC_IOMUX_V3
473	select CPU_ARM926T
474	select MXC_AVIC
475	select PINCTRL_IMX25
476	help
477	  This enables support for Freescale i.MX25 processor
478endif
479
480if ARCH_MULTI_V7
481
482comment "Cortex-A platforms"
483
484config SOC_IMX5
485	bool
486	select HAVE_IMX_SRC
487	select MXC_TZIC
488
489config	SOC_IMX50
490	bool "i.MX50 support"
491	select PINCTRL_IMX50
492	select SOC_IMX5
493
494	help
495	  This enables support for Freescale i.MX50 processor.
496
497config SOC_IMX51
498	bool "i.MX51 support"
499	select PINCTRL_IMX51
500	select SOC_IMX5
501	help
502	  This enables support for Freescale i.MX51 processor
503
504config	SOC_IMX53
505	bool "i.MX53 support"
506	select PINCTRL_IMX53
507	select SOC_IMX5
508
509	help
510	  This enables support for Freescale i.MX53 processor.
511
512config SOC_IMX6
513	bool
514	select ARM_CPU_SUSPEND if PM
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
525config 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
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
537config 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
545config 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
553config 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
561config 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
572config 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
581endif
582
583comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
584
585if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
586
587config 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
597choice
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
616endchoice
617
618endif
619
620source "arch/arm/mach-imx/devices/Kconfig"
621
622endif
623