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