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