GNU Linux-libre 5.19-rc6-gnu
[releases.git] / arch / arm / mach-at91 / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig 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
12 if ARCH_AT91
13 config 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
21 config 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
36 config 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
48 config 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
61 config 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
72 config 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
81 config 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
95 config 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
129 config 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
146 comment "Clocksource driver selection"
147
148 config 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
158 config 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
169 config 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
178 config HAVE_AT91_UTMI
179         bool
180
181 config HAVE_AT91_USB_CLK
182         bool
183
184 config COMMON_CLK_AT91
185         bool
186         select MFD_SYSCON
187
188 config HAVE_AT91_SMD
189         bool
190
191 config HAVE_AT91_H32MX
192         bool
193
194 config HAVE_AT91_GENERATED_CLK
195         bool
196
197 config HAVE_AT91_AUDIO_PLL
198         bool
199
200 config HAVE_AT91_I2S_MUX_CLK
201         bool
202
203 config HAVE_AT91_SAM9X60_PLL
204         bool
205
206 config SOC_SAM_V4_V5
207         bool
208
209 config SOC_SAM_V7
210         bool
211
212 config 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
221 config ATMEL_PM
222         bool
223
224 config 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
233 config 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
241 endif