1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig ARCH_AT91
3	bool "AT91/Microchip SoCs"
4	depends on (CPU_LITTLE_ENDIAN && (ARCH_MULTI_V4T || ARCH_MULTI_V5)) || \
5		ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
6	select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7
7	select COMMON_CLK_AT91
8	select GPIOLIB
9	select PINCTRL
10	select SOC_BUS
11
12if ARCH_AT91
13config SOC_SAMV7
14	bool "SAM Cortex-M7 family" if ARM_SINGLE_ARMV7M
15	select COMMON_CLK_AT91
16	select PINCTRL_AT91
17	help
18	  Select this if you are using an SoC from Microchip's SAME7, SAMS7 or SAMV7
19	  families.
20
21config SOC_SAMA5D2
22	bool "SAMA5D2 family"
23	depends on ARCH_MULTI_V7
24	select SOC_SAMA5
25	select CACHE_L2X0
26	select HAVE_AT91_UTMI
27	select HAVE_AT91_USB_CLK
28	select HAVE_AT91_H32MX
29	select HAVE_AT91_GENERATED_CLK
30	select HAVE_AT91_AUDIO_PLL
31	select HAVE_AT91_I2S_MUX_CLK
32	select PINCTRL_AT91PIO4
33	help
34	  Select this if ou are using one of Microchip's SAMA5D2 family SoC.
35
36config SOC_SAMA5D3
37	bool "SAMA5D3 family"
38	depends on ARCH_MULTI_V7
39	select SOC_SAMA5
40	select HAVE_AT91_UTMI
41	select HAVE_AT91_SMD
42	select HAVE_AT91_USB_CLK
43	select PINCTRL_AT91
44	help
45	  Select this if you are using one of Microchip's SAMA5D3 family SoC.
46	  This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36.
47
48config SOC_SAMA5D4
49	bool "SAMA5D4 family"
50	depends on ARCH_MULTI_V7
51	select SOC_SAMA5
52	select CACHE_L2X0
53	select HAVE_AT91_UTMI
54	select HAVE_AT91_SMD
55	select HAVE_AT91_USB_CLK
56	select HAVE_AT91_H32MX
57	select PINCTRL_AT91
58	help
59	  Select this if you are using one of Microchip's SAMA5D4 family SoC.
60
61config SOC_SAMA7G5
62	bool "SAMA7G5 family"
63	depends on ARCH_MULTI_V7
64	select HAVE_AT91_GENERATED_CLK
65	select HAVE_AT91_SAM9X60_PLL
66	select HAVE_AT91_UTMI
67	select PM_OPP
68	select SOC_SAMA7
69	help
70	  Select this if you are using one of Microchip's SAMA7G5 family SoC.
71
72config SOC_LAN966
73	bool "ARMv7 based Microchip LAN966 SoC family"
74	depends on ARCH_MULTI_V7
75	select DW_APB_TIMER_OF
76	select ARM_GIC
77	select MEMORY
78	help
79	  This enables support for ARMv7 based Microchip LAN966 SoC family.
80
81config SOC_AT91RM9200
82	bool "AT91RM9200"
83	depends on ARCH_MULTI_V4T
84	select ATMEL_AIC_IRQ
85	select ATMEL_PM if PM
86	select ATMEL_ST
87	select CPU_ARM920T
88	select HAVE_AT91_USB_CLK
89	select PINCTRL_AT91
90	select SOC_SAM_V4_V5
91	select SRAM if PM
92	help
93	  Select this if you are using Microchip's AT91RM9200 SoC.
94
95config SOC_AT91SAM9
96	bool "AT91SAM9"
97	depends on ARCH_MULTI_V5
98	select ATMEL_AIC_IRQ
99	select ATMEL_PM if PM
100	select ATMEL_SDRAMC
101	select CPU_ARM926T
102	select HAVE_AT91_SMD
103	select HAVE_AT91_USB_CLK
104	select HAVE_AT91_UTMI
105	select HAVE_FB_ATMEL
106	select MEMORY
107	select PINCTRL_AT91
108	select SOC_SAM_V4_V5
109	select SRAM if PM
110	help
111	  Select this if you are using one of those Microchip SoC:
112	    AT91SAM9260
113	    AT91SAM9261
114	    AT91SAM9263
115	    AT91SAM9G15
116	    AT91SAM9G20
117	    AT91SAM9G25
118	    AT91SAM9G35
119	    AT91SAM9G45
120	    AT91SAM9G46
121	    AT91SAM9M10
122	    AT91SAM9M11
123	    AT91SAM9N12
124	    AT91SAM9RL
125	    AT91SAM9X25
126	    AT91SAM9X35
127	    AT91SAM9XE
128
129config SOC_SAM9X60
130	bool "SAM9X60"
131	depends on ARCH_MULTI_V5
132	select ATMEL_AIC5_IRQ
133	select ATMEL_PM if PM
134	select ATMEL_SDRAMC
135	select CPU_ARM926T
136	select HAVE_AT91_USB_CLK
137	select HAVE_AT91_GENERATED_CLK
138	select HAVE_AT91_SAM9X60_PLL
139	select MEMORY
140	select PINCTRL_AT91
141	select SOC_SAM_V4_V5
142	select SRAM if PM
143	help
144	  Select this if you are using Microchip's SAM9X60 SoC
145
146comment "Clocksource driver selection"
147
148config ATMEL_CLOCKSOURCE_PIT
149	bool "Periodic Interval Timer (PIT) support"
150	depends on SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
151	default SOC_AT91SAM9 || SOC_SAMA5
152	select ATMEL_PIT
153	help
154	  Select this to get a clocksource based on the Atmel Periodic Interval
155	  Timer. It has a relatively low resolution and the TC Block clocksource
156	  should be preferred.
157
158config ATMEL_CLOCKSOURCE_TCB
159	bool "Timer Counter Blocks (TCB) support"
160	default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
161	select ATMEL_TCB_CLKSRC
162	help
163	  Select this to get a high precision clocksource based on a
164	  TC block with a 5+ MHz base clock rate.
165	  On platforms with 16-bit counters, two timer channels are combined
166	  to make a single 32-bit timer.
167	  It can also be used as a clock event device supporting oneshot mode.
168
169config MICROCHIP_CLOCKSOURCE_PIT64B
170	bool "64-bit Periodic Interval Timer (PIT64B) support"
171	default SOC_SAM9X60 || SOC_SAMA7
172	select MICROCHIP_PIT64B
173	help
174	  Select this to get a high resolution clockevent (SAM9X60) or
175	  clocksource and clockevent (SAMA7G5) based on Microchip 64-bit
176	  Periodic Interval Timer.
177
178config HAVE_AT91_UTMI
179	bool
180
181config HAVE_AT91_USB_CLK
182	bool
183
184config COMMON_CLK_AT91
185	bool
186	select MFD_SYSCON
187
188config HAVE_AT91_SMD
189	bool
190
191config HAVE_AT91_H32MX
192	bool
193
194config HAVE_AT91_GENERATED_CLK
195	bool
196
197config HAVE_AT91_AUDIO_PLL
198	bool
199
200config HAVE_AT91_I2S_MUX_CLK
201	bool
202
203config HAVE_AT91_SAM9X60_PLL
204	bool
205
206config SOC_SAM_V4_V5
207	bool
208
209config SOC_SAM_V7
210	bool
211
212config SOC_SAMA5
213	bool
214	select ATMEL_AIC5_IRQ
215	select ATMEL_PM if PM
216	select ATMEL_SDRAMC
217	select MEMORY
218	select SOC_SAM_V7
219	select SRAM if PM
220
221config ATMEL_PM
222	bool
223
224config ATMEL_SECURE_PM
225	bool "Atmel Secure PM support"
226	depends on SOC_SAMA5D2 && ATMEL_PM
227	select ARM_PSCI
228	help
229	  When running under a TEE, the suspend mode must be requested to be set
230	  at TEE level. When enable, this option will use secure monitor calls
231	  to set the suspend level. PSCI is then used to enter suspend.
232
233config SOC_SAMA7
234	bool
235	select ARM_GIC
236	select ATMEL_PM if PM
237	select ATMEL_SDRAMC
238	select MEMORY
239	select SOC_SAM_V7
240	select SRAM if PM
241endif
242