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