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