GNU Linux-libre 6.8.9-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 CPU_ARM926T
101         select HAVE_AT91_SMD
102         select HAVE_AT91_USB_CLK
103         select HAVE_AT91_UTMI
104         select HAVE_FB_ATMEL
105         select MEMORY
106         select PINCTRL_AT91
107         select SOC_SAM_V4_V5
108         select SRAM if PM
109         help
110           Select this if you are using one of those Microchip SoC:
111             AT91SAM9260
112             AT91SAM9261
113             AT91SAM9263
114             AT91SAM9G15
115             AT91SAM9G20
116             AT91SAM9G25
117             AT91SAM9G35
118             AT91SAM9G45
119             AT91SAM9G46
120             AT91SAM9M10
121             AT91SAM9M11
122             AT91SAM9N12
123             AT91SAM9RL
124             AT91SAM9X25
125             AT91SAM9X35
126             AT91SAM9XE
127
128 config SOC_SAM9X60
129         bool "SAM9X60"
130         depends on ARCH_MULTI_V5
131         select ATMEL_AIC5_IRQ
132         select ATMEL_PM if PM
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
144 comment "Clocksource driver selection"
145
146 config 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
156 config 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
167 config MICROCHIP_CLOCKSOURCE_PIT64B
168         bool "64-bit Periodic Interval Timer (PIT64B) support"
169         default SOC_SAM9X60 || SOC_SAMA7
170         select MICROCHIP_PIT64B
171         help
172           Select this to get a high resolution clockevent (SAM9X60) or
173           clocksource and clockevent (SAMA7G5) based on Microchip 64-bit
174           Periodic Interval Timer.
175
176 config HAVE_AT91_UTMI
177         bool
178
179 config HAVE_AT91_USB_CLK
180         bool
181
182 config COMMON_CLK_AT91
183         bool
184         select MFD_SYSCON
185
186 config HAVE_AT91_SMD
187         bool
188
189 config HAVE_AT91_H32MX
190         bool
191
192 config HAVE_AT91_GENERATED_CLK
193         bool
194
195 config HAVE_AT91_AUDIO_PLL
196         bool
197
198 config HAVE_AT91_I2S_MUX_CLK
199         bool
200
201 config HAVE_AT91_SAM9X60_PLL
202         bool
203
204 config SOC_SAM_V4_V5
205         bool
206
207 config SOC_SAM_V7
208         bool
209
210 config SOC_SAMA5
211         bool
212         select ATMEL_AIC5_IRQ
213         select ATMEL_PM if PM
214         select MEMORY
215         select SOC_SAM_V7
216         select SRAM if PM
217
218 config ATMEL_PM
219         bool
220
221 config ATMEL_SECURE_PM
222         bool "Atmel Secure PM support"
223         depends on SOC_SAMA5D2 && ATMEL_PM
224         select ARM_PSCI
225         help
226           When running under a TEE, the suspend mode must be requested to be set
227           at TEE level. When enable, this option will use secure monitor calls
228           to set the suspend level. PSCI is then used to enter suspend.
229
230 config SOC_SAMA7
231         bool
232         select ARM_GIC
233         select ATMEL_PM if PM
234         select MEMORY
235         select SOC_SAM_V7
236         select SRAM if PM
237 endif