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