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