xref: /openbmc/linux/arch/arm/mach-imx/Kconfig (revision eb50fd3a)
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_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
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 HAVE_IMX_ANATOP
48	bool
49
50config HAVE_IMX_GPC
51	bool
52	select PM_GENERIC_DOMAINS if PM
53
54config HAVE_IMX_MMDC
55	bool
56
57config HAVE_IMX_SRC
58	def_bool y if SMP
59	select ARCH_HAS_RESET_CONTROLLER
60
61config IMX_HAVE_IOMUX_V1
62	bool
63
64config ARCH_MXC_IOMUX_V3
65	bool
66
67config SOC_IMX21
68	bool
69	select CPU_ARM926T
70	select IMX_HAVE_IOMUX_V1
71	select MXC_AVIC
72
73config SOC_IMX27
74	bool
75	select CPU_ARM926T
76	select IMX_HAVE_IOMUX_V1
77	select MXC_AVIC
78	select PINCTRL_IMX27
79
80config SOC_IMX31
81	bool
82	select CPU_V6
83	select MXC_AVIC
84
85config SOC_IMX35
86	bool
87	select ARCH_MXC_IOMUX_V3
88	select HAVE_EPIT
89	select MXC_AVIC
90	select PINCTRL_IMX35
91
92if ARCH_MULTI_V5
93
94comment "MX21 platforms:"
95
96config 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
107comment "MX27 platforms:"
108
109config 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
122config 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
142config 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
159config 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
178config 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
185endif
186
187if ARCH_MULTI_V6
188
189comment "MX31 platforms:"
190
191config 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
202config 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
211config 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
224config 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
240config 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
257config 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
267config 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
287config 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
296config 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
314config 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
323config 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
338config 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
346config 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
355config 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
362comment "MX35 platforms:"
363
364config 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
371config 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
389config 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
407config 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
423endif
424
425comment "Device tree only"
426
427if ARCH_MULTI_V4T
428
429config 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
437endif
438
439if ARCH_MULTI_V5
440
441config 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
449endif
450
451if ARCH_MULTI_V7
452
453comment "Cortex-A platforms"
454
455config SOC_IMX5
456	bool
457	select HAVE_IMX_SRC
458	select MXC_TZIC
459
460config	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
468config 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
475config	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
483config 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
496config 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
507config 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
515config 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
523config 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
531config 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
543config 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
551endif
552
553comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
554
555if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
556
557config 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
565choice
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
584endchoice
585
586endif
587
588source "arch/arm/mach-imx/devices/Kconfig"
589
590endif
591