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