xref: /openbmc/linux/arch/arm/mach-imx/Kconfig (revision 26e30c64)
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 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
16if ARCH_MXC
17
18config MXC_TZIC
19	bool
20
21config MXC_AVIC
22	bool
23
24config 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
36config HAVE_EPIT
37	bool
38
39config 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
48config ARCH_HAS_RNGA
49	bool
50
51config HAVE_IMX_ANATOP
52	bool
53
54config HAVE_IMX_GPC
55	bool
56	select PM_GENERIC_DOMAINS if PM
57
58config HAVE_IMX_MMDC
59	bool
60
61config HAVE_IMX_SRC
62	def_bool y if SMP
63	select ARCH_HAS_RESET_CONTROLLER
64
65config IMX_HAVE_IOMUX_V1
66	bool
67
68config ARCH_MXC_IOMUX_V3
69	bool
70
71config SOC_IMX1
72	bool
73	select CPU_ARM920T
74	select IMX_HAVE_IOMUX_V1
75	select MXC_AVIC
76	select PINCTRL_IMX1
77
78config SOC_IMX21
79	bool
80	select CPU_ARM926T
81	select IMX_HAVE_IOMUX_V1
82	select MXC_AVIC
83
84config SOC_IMX27
85	bool
86	select CPU_ARM926T
87	select IMX_HAVE_IOMUX_V1
88	select MXC_AVIC
89	select PINCTRL_IMX27
90
91config 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
98config 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
106if ARCH_MULTI_V4T
107
108comment "MX1 platforms:"
109
110config 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
117config 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
125config 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
132endif
133
134if ARCH_MULTI_V5
135
136comment "MX21 platforms:"
137
138config 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
149comment "MX27 platforms:"
150
151config 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
164config 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
184config 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
201config 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
220config 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
227endif
228
229if ARCH_MULTI_V6
230
231comment "MX31 platforms:"
232
233config 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
244config 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
253config 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
266config 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
282config 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
299config 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
309config 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
329config 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
338config 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
356config 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
365config 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
380config 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
388config 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
397config 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
404comment "MX35 platforms:"
405
406config 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
413config 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
431config 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
449config 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
465endif
466
467comment "Device tree only"
468
469if ARCH_MULTI_V5
470
471config 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
479endif
480
481if ARCH_MULTI_V7
482
483comment "Cortex-A platforms"
484
485config SOC_IMX5
486	bool
487	select HAVE_IMX_SRC
488	select MXC_TZIC
489
490config	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
498config 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
505config	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
513config 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
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 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
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