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