xref: /openbmc/linux/arch/arm/mach-imx/Kconfig (revision e4624435)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig ARCH_MXC
3	bool "Freescale i.MX family"
4	depends on ((ARCH_MULTI_V4T || ARCH_MULTI_V5) && CPU_LITTLE_ENDIAN) || \
5		ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
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 HAVE_IMX_ANATOP
25	bool
26
27config HAVE_IMX_GPC
28	bool
29	select PM_GENERIC_DOMAINS if PM
30
31config HAVE_IMX_MMDC
32	bool
33
34config HAVE_IMX_SRC
35	def_bool y if SMP
36	select ARCH_HAS_RESET_CONTROLLER
37
38if ARCH_MULTI_V6
39
40comment "ARM1136 platforms"
41
42config SOC_IMX31
43	bool "i.MX31 support"
44	select CPU_V6
45	select MXC_AVIC
46	help
47	  This enables support for Freescale i.MX31 processor
48
49config SOC_IMX35
50	bool "i.MX35 support"
51	select MXC_AVIC
52	select PINCTRL_IMX35
53	help
54	  This enables support for Freescale i.MX35 processor
55
56endif
57
58if ARCH_MULTI_V4T
59
60config SOC_IMX1
61	bool "i.MX1 support"
62	select CPU_ARM920T
63	select MXC_AVIC
64	select PINCTRL_IMX1
65	help
66	  This enables support for Freescale i.MX1 processor
67
68endif
69
70if ARCH_MULTI_V5
71
72config SOC_IMX25
73	bool "i.MX25 support"
74	select CPU_ARM926T
75	select MXC_AVIC
76	select PINCTRL_IMX25
77	help
78	  This enables support for Freescale i.MX25 processor
79
80config SOC_IMX27
81	bool "i.MX27 support"
82	select CPU_ARM926T
83	select MXC_AVIC
84	select PINCTRL_IMX27
85	help
86	  This enables support for Freescale i.MX27 processor
87
88endif
89
90if ARCH_MULTI_V7
91
92comment "Cortex-A platforms"
93
94config SOC_IMX5
95	bool
96	select HAVE_IMX_SRC
97	select MXC_TZIC
98
99config SOC_IMX50
100	bool "i.MX50 support"
101	select PINCTRL_IMX50
102	select SOC_IMX5
103
104	help
105	  This enables support for Freescale i.MX50 processor.
106
107config SOC_IMX51
108	bool "i.MX51 support"
109	select PINCTRL_IMX51
110	select SOC_IMX5
111	help
112	  This enables support for Freescale i.MX51 processor
113
114config SOC_IMX53
115	bool "i.MX53 support"
116	select PINCTRL_IMX53
117	select SOC_IMX5
118
119	help
120	  This enables support for Freescale i.MX53 processor.
121
122config SOC_IMX6
123	bool
124	select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
125	select ARM_GIC
126	select HAVE_IMX_ANATOP
127	select HAVE_IMX_GPC
128	select HAVE_IMX_MMDC
129	select HAVE_IMX_SRC
130	select MFD_SYSCON
131	select PL310_ERRATA_769419 if CACHE_L2X0
132
133config SOC_IMX6Q
134	bool "i.MX6 Quad/DualLite support"
135	select ARM_ERRATA_764369 if SMP
136	select ARM_ERRATA_754322
137	select ARM_ERRATA_775420
138	select HAVE_ARM_SCU if SMP
139	select HAVE_ARM_TWD
140	select PINCTRL_IMX6Q
141	select SOC_IMX6
142
143	help
144	  This enables support for Freescale i.MX6 Quad processor.
145
146config SOC_IMX6SL
147	bool "i.MX6 SoloLite support"
148	select ARM_ERRATA_754322
149	select ARM_ERRATA_775420
150	select PINCTRL_IMX6SL
151	select SOC_IMX6
152
153	help
154	  This enables support for Freescale i.MX6 SoloLite processor.
155
156config SOC_IMX6SLL
157	bool "i.MX6 SoloLiteLite support"
158	select ARM_ERRATA_754322
159	select ARM_ERRATA_775420
160	select PINCTRL_IMX6SLL
161	select SOC_IMX6
162
163	help
164	  This enables support for Freescale i.MX6 SoloLiteLite processor.
165
166config SOC_IMX6SX
167	bool "i.MX6 SoloX support"
168	select ARM_ERRATA_754322
169	select ARM_ERRATA_775420
170	select PINCTRL_IMX6SX
171	select SOC_IMX6
172
173	help
174	  This enables support for Freescale i.MX6 SoloX processor.
175
176config SOC_IMX6UL
177	bool "i.MX6 UltraLite support"
178	select PINCTRL_IMX6UL
179	select SOC_IMX6
180	select ARM_ERRATA_814220
181
182	help
183	  This enables support for Freescale i.MX6 UltraLite processor.
184
185config SOC_LS1021A
186	bool "Freescale LS1021A support"
187	select ARM_GIC
188	select HAVE_ARM_ARCH_TIMER
189	select ZONE_DMA if ARM_LPAE
190	help
191	  This enables support for Freescale LS1021A processor.
192
193endif
194
195if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
196
197comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
198
199config SOC_IMX7D_CA7
200	bool
201	select ARM_GIC
202	select HAVE_ARM_ARCH_TIMER
203	select HAVE_IMX_ANATOP
204	select HAVE_IMX_MMDC
205	select HAVE_IMX_SRC
206	select IMX_GPCV2
207
208config SOC_IMX7D_CM4
209	bool
210	select ARMV7M_SYSTICK
211
212config SOC_IMX7D
213	bool "i.MX7 Dual support"
214	select PINCTRL_IMX7D
215	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
216	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
217	select ARM_ERRATA_814220 if ARCH_MULTI_V7
218	help
219	  This enables support for Freescale i.MX7 Dual processor.
220
221config SOC_IMX7ULP
222	bool "i.MX7ULP support"
223	select CLKSRC_IMX_TPM
224	select PINCTRL_IMX7ULP
225	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
226	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
227	help
228	  This enables support for Freescale i.MX7 Ultra Low Power processor.
229
230config SOC_IMXRT
231	bool "i.MXRT support"
232	depends on ARM_SINGLE_ARMV7M
233	select ARMV7M_SYSTICK if ARM_SINGLE_ARMV7M
234	help
235	  This enables support for Freescale i.MXRT Crossover processor.
236
237config SOC_VF610
238	bool "Vybrid Family VF610 support"
239	select ARM_GIC if ARCH_MULTI_V7
240	select PINCTRL_VF610
241
242	help
243	  This enables support for Freescale Vybrid VF610 processor.
244
245choice
246	prompt "Clocksource for scheduler clock"
247	depends on SOC_VF610
248	default VF_USE_ARM_GLOBAL_TIMER
249
250	config VF_USE_ARM_GLOBAL_TIMER
251		bool "Use ARM Global Timer"
252		depends on ARCH_MULTI_V7
253		select ARM_GLOBAL_TIMER
254		select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
255		help
256		  Use the ARM Global Timer as clocksource
257
258	config VF_USE_PIT_TIMER
259		bool "Use PIT timer"
260		select VF_PIT_TIMER
261		help
262		  Use SoC Periodic Interrupt Timer (PIT) as clocksource
263
264endchoice
265
266endif
267
268endif
269