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