xref: /openbmc/linux/arch/arm/mach-imx/Kconfig (revision c93197b0)
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_IMX35
57	bool
58	select ARCH_MXC_IOMUX_V3
59	select MXC_AVIC
60	select PINCTRL_IMX35
61
62if ARCH_MULTI_V6
63
64config SOC_IMX31
65	bool "i.MX31 support"
66	select CPU_V6
67	select MXC_AVIC
68	help
69	  This enables support for Freescale i.MX31 processor
70
71comment "MX35 platforms:"
72
73config MACH_IMX35_DT
74	bool "Support i.MX35 platforms from device tree"
75	select SOC_IMX35
76	help
77	  Include support for Freescale i.MX35 based platforms
78	  using the device tree for discovery.
79
80config MACH_PCM043
81	bool "Support Phytec pcm043 (i.MX35) platforms"
82	select IMX_HAVE_PLATFORM_FLEXCAN
83	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
84	select IMX_HAVE_PLATFORM_IMX2_WDT
85	select IMX_HAVE_PLATFORM_IMX_I2C
86	select IMX_HAVE_PLATFORM_IMX_SSI
87	select IMX_HAVE_PLATFORM_IMX_UART
88	select IMX_HAVE_PLATFORM_IPU_CORE
89	select IMX_HAVE_PLATFORM_MXC_EHCI
90	select IMX_HAVE_PLATFORM_MXC_NAND
91	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
92	select USB_ULPI_VIEWPORT if USB_ULPI
93	select SOC_IMX35
94	help
95	  Include support for Phytec pcm043 platform. This includes
96	  specific configurations for the board and its peripherals.
97
98config MACH_MX35_3DS
99	bool "Support MX35PDK platform"
100	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
101	select IMX_HAVE_PLATFORM_IMX2_WDT
102	select IMX_HAVE_PLATFORM_IMX_FB
103	select IMX_HAVE_PLATFORM_IMX_I2C
104	select IMX_HAVE_PLATFORM_IMX_UART
105	select IMX_HAVE_PLATFORM_IPU_CORE
106	select IMX_HAVE_PLATFORM_MXC_EHCI
107	select IMX_HAVE_PLATFORM_MXC_NAND
108	select IMX_HAVE_PLATFORM_MXC_RTC
109	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
110	select MXC_DEBUG_BOARD
111	select SOC_IMX35
112	help
113	  Include support for MX35PDK platform. This includes specific
114	  configurations for the board and its peripherals.
115
116config MACH_VPR200
117	bool "Support VPR200 platform"
118	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
119	select IMX_HAVE_PLATFORM_GPIO_KEYS
120	select IMX_HAVE_PLATFORM_IMX2_WDT
121	select IMX_HAVE_PLATFORM_IMX_I2C
122	select IMX_HAVE_PLATFORM_IMX_UART
123	select IMX_HAVE_PLATFORM_IPU_CORE
124	select IMX_HAVE_PLATFORM_MXC_EHCI
125	select IMX_HAVE_PLATFORM_MXC_NAND
126	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
127	select SOC_IMX35
128	help
129	  Include support for VPR200 platform. This includes specific
130	  configurations for the board and its peripherals.
131
132endif
133
134if ARCH_MULTI_V4T
135
136config SOC_IMX1
137	bool "i.MX1 support"
138	select CPU_ARM920T
139	select MXC_AVIC
140	select PINCTRL_IMX1
141	help
142	  This enables support for Freescale i.MX1 processor
143
144endif
145
146if ARCH_MULTI_V5
147
148config SOC_IMX25
149	bool "i.MX25 support"
150	select ARCH_MXC_IOMUX_V3
151	select CPU_ARM926T
152	select MXC_AVIC
153	select PINCTRL_IMX25
154	help
155	  This enables support for Freescale i.MX25 processor
156
157config SOC_IMX27
158	bool "i.MX27 support"
159	select IMX_HAVE_IOMUX_V1
160	select CPU_ARM926T
161	select MXC_AVIC
162	select PINCTRL_IMX27
163	help
164	  This enables support for Freescale i.MX27 processor
165
166endif
167
168if ARCH_MULTI_V7
169
170comment "Cortex-A platforms"
171
172config SOC_IMX5
173	bool
174	select HAVE_IMX_SRC
175	select MXC_TZIC
176
177config	SOC_IMX50
178	bool "i.MX50 support"
179	select PINCTRL_IMX50
180	select SOC_IMX5
181
182	help
183	  This enables support for Freescale i.MX50 processor.
184
185config SOC_IMX51
186	bool "i.MX51 support"
187	select PINCTRL_IMX51
188	select SOC_IMX5
189	help
190	  This enables support for Freescale i.MX51 processor
191
192config	SOC_IMX53
193	bool "i.MX53 support"
194	select PINCTRL_IMX53
195	select SOC_IMX5
196
197	help
198	  This enables support for Freescale i.MX53 processor.
199
200config SOC_IMX6
201	bool
202	select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
203	select ARM_GIC
204	select HAVE_IMX_ANATOP
205	select HAVE_IMX_GPC
206	select HAVE_IMX_MMDC
207	select HAVE_IMX_SRC
208	select MFD_SYSCON
209	select PL310_ERRATA_769419 if CACHE_L2X0
210
211config SOC_IMX6Q
212	bool "i.MX6 Quad/DualLite support"
213	select ARM_ERRATA_764369 if SMP
214	select ARM_ERRATA_754322
215	select ARM_ERRATA_775420
216	select HAVE_ARM_SCU if SMP
217	select HAVE_ARM_TWD
218	select PINCTRL_IMX6Q
219	select SOC_IMX6
220
221	help
222	  This enables support for Freescale i.MX6 Quad processor.
223
224config SOC_IMX6SL
225	bool "i.MX6 SoloLite support"
226	select ARM_ERRATA_754322
227	select ARM_ERRATA_775420
228	select PINCTRL_IMX6SL
229	select SOC_IMX6
230
231	help
232	  This enables support for Freescale i.MX6 SoloLite processor.
233
234config SOC_IMX6SLL
235	bool "i.MX6 SoloLiteLite support"
236	select ARM_ERRATA_754322
237	select ARM_ERRATA_775420
238	select PINCTRL_IMX6SLL
239	select SOC_IMX6
240
241	help
242	  This enables support for Freescale i.MX6 SoloLiteLite processor.
243
244config SOC_IMX6SX
245	bool "i.MX6 SoloX support"
246	select ARM_ERRATA_754322
247	select ARM_ERRATA_775420
248	select PINCTRL_IMX6SX
249	select SOC_IMX6
250
251	help
252	  This enables support for Freescale i.MX6 SoloX processor.
253
254config SOC_IMX6UL
255	bool "i.MX6 UltraLite support"
256	select PINCTRL_IMX6UL
257	select SOC_IMX6
258	select ARM_ERRATA_814220
259
260	help
261	  This enables support for Freescale i.MX6 UltraLite processor.
262
263config SOC_LS1021A
264	bool "Freescale LS1021A support"
265	select ARM_GIC
266	select HAVE_ARM_ARCH_TIMER
267	select ZONE_DMA if ARM_LPAE
268	help
269	  This enables support for Freescale LS1021A processor.
270
271endif
272
273if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
274
275comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
276
277config SOC_IMX7D_CA7
278	bool
279	select ARM_GIC
280	select HAVE_ARM_ARCH_TIMER
281	select HAVE_IMX_ANATOP
282	select HAVE_IMX_MMDC
283	select HAVE_IMX_SRC
284	select IMX_GPCV2
285
286config SOC_IMX7D_CM4
287	bool
288	select ARMV7M_SYSTICK
289
290config SOC_IMX7D
291	bool "i.MX7 Dual support"
292	select PINCTRL_IMX7D
293	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
294	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
295	select ARM_ERRATA_814220 if ARCH_MULTI_V7
296	help
297		This enables support for Freescale i.MX7 Dual processor.
298
299config SOC_IMX7ULP
300	bool "i.MX7ULP support"
301	select CLKSRC_IMX_TPM
302	select PINCTRL_IMX7ULP
303	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
304	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
305	help
306	  This enables support for Freescale i.MX7 Ultra Low Power processor.
307
308config SOC_VF610
309	bool "Vybrid Family VF610 support"
310	select ARM_GIC if ARCH_MULTI_V7
311	select PINCTRL_VF610
312
313	help
314	  This enables support for Freescale Vybrid VF610 processor.
315
316choice
317	prompt "Clocksource for scheduler clock"
318	depends on SOC_VF610
319	default VF_USE_ARM_GLOBAL_TIMER
320
321	config VF_USE_ARM_GLOBAL_TIMER
322		bool "Use ARM Global Timer"
323		depends on ARCH_MULTI_V7
324		select ARM_GLOBAL_TIMER
325		select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
326		help
327		  Use the ARM Global Timer as clocksource
328
329	config VF_USE_PIT_TIMER
330		bool "Use PIT timer"
331		select VF_PIT_TIMER
332		help
333		  Use SoC Periodic Interrupt Timer (PIT) as clocksource
334
335endchoice
336
337endif
338
339source "arch/arm/mach-imx/devices/Kconfig"
340
341endif
342