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