0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig ARCH_AT91
0003 bool "AT91/Microchip SoCs"
0004 depends on (CPU_LITTLE_ENDIAN && (ARCH_MULTI_V4T || ARCH_MULTI_V5)) || \
0005 ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
0006 select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7
0007 select COMMON_CLK_AT91
0008 select GPIOLIB
0009 select PINCTRL
0010 select SOC_BUS
0011
0012 if ARCH_AT91
0013 config SOC_SAMV7
0014 bool "SAM Cortex-M7 family" if ARM_SINGLE_ARMV7M
0015 select COMMON_CLK_AT91
0016 select PINCTRL_AT91
0017 help
0018 Select this if you are using an SoC from Microchip's SAME7, SAMS7 or SAMV7
0019 families.
0020
0021 config SOC_SAMA5D2
0022 bool "SAMA5D2 family"
0023 depends on ARCH_MULTI_V7
0024 select SOC_SAMA5
0025 select CACHE_L2X0
0026 select HAVE_AT91_UTMI
0027 select HAVE_AT91_USB_CLK
0028 select HAVE_AT91_H32MX
0029 select HAVE_AT91_GENERATED_CLK
0030 select HAVE_AT91_AUDIO_PLL
0031 select HAVE_AT91_I2S_MUX_CLK
0032 select PINCTRL_AT91PIO4
0033 help
0034 Select this if ou are using one of Microchip's SAMA5D2 family SoC.
0035
0036 config SOC_SAMA5D3
0037 bool "SAMA5D3 family"
0038 depends on ARCH_MULTI_V7
0039 select SOC_SAMA5
0040 select HAVE_AT91_UTMI
0041 select HAVE_AT91_SMD
0042 select HAVE_AT91_USB_CLK
0043 select PINCTRL_AT91
0044 help
0045 Select this if you are using one of Microchip's SAMA5D3 family SoC.
0046 This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36.
0047
0048 config SOC_SAMA5D4
0049 bool "SAMA5D4 family"
0050 depends on ARCH_MULTI_V7
0051 select SOC_SAMA5
0052 select CACHE_L2X0
0053 select HAVE_AT91_UTMI
0054 select HAVE_AT91_SMD
0055 select HAVE_AT91_USB_CLK
0056 select HAVE_AT91_H32MX
0057 select PINCTRL_AT91
0058 help
0059 Select this if you are using one of Microchip's SAMA5D4 family SoC.
0060
0061 config SOC_SAMA7G5
0062 bool "SAMA7G5 family"
0063 depends on ARCH_MULTI_V7
0064 select HAVE_AT91_GENERATED_CLK
0065 select HAVE_AT91_SAM9X60_PLL
0066 select HAVE_AT91_UTMI
0067 select PM_OPP
0068 select SOC_SAMA7
0069 help
0070 Select this if you are using one of Microchip's SAMA7G5 family SoC.
0071
0072 config SOC_LAN966
0073 bool "ARMv7 based Microchip LAN966 SoC family"
0074 depends on ARCH_MULTI_V7
0075 select DW_APB_TIMER_OF
0076 select ARM_GIC
0077 select MEMORY
0078 help
0079 This enables support for ARMv7 based Microchip LAN966 SoC family.
0080
0081 config SOC_AT91RM9200
0082 bool "AT91RM9200"
0083 depends on ARCH_MULTI_V4T
0084 select ATMEL_AIC_IRQ
0085 select ATMEL_PM if PM
0086 select ATMEL_ST
0087 select CPU_ARM920T
0088 select HAVE_AT91_USB_CLK
0089 select PINCTRL_AT91
0090 select SOC_SAM_V4_V5
0091 select SRAM if PM
0092 help
0093 Select this if you are using Microchip's AT91RM9200 SoC.
0094
0095 config SOC_AT91SAM9
0096 bool "AT91SAM9"
0097 depends on ARCH_MULTI_V5
0098 select ATMEL_AIC_IRQ
0099 select ATMEL_PM if PM
0100 select ATMEL_SDRAMC
0101 select CPU_ARM926T
0102 select HAVE_AT91_SMD
0103 select HAVE_AT91_USB_CLK
0104 select HAVE_AT91_UTMI
0105 select HAVE_FB_ATMEL
0106 select MEMORY
0107 select PINCTRL_AT91
0108 select SOC_SAM_V4_V5
0109 select SRAM if PM
0110 help
0111 Select this if you are using one of those Microchip SoC:
0112 AT91SAM9260
0113 AT91SAM9261
0114 AT91SAM9263
0115 AT91SAM9G15
0116 AT91SAM9G20
0117 AT91SAM9G25
0118 AT91SAM9G35
0119 AT91SAM9G45
0120 AT91SAM9G46
0121 AT91SAM9M10
0122 AT91SAM9M11
0123 AT91SAM9N12
0124 AT91SAM9RL
0125 AT91SAM9X25
0126 AT91SAM9X35
0127 AT91SAM9XE
0128
0129 config SOC_SAM9X60
0130 bool "SAM9X60"
0131 depends on ARCH_MULTI_V5
0132 select ATMEL_AIC5_IRQ
0133 select ATMEL_PM if PM
0134 select ATMEL_SDRAMC
0135 select CPU_ARM926T
0136 select HAVE_AT91_USB_CLK
0137 select HAVE_AT91_GENERATED_CLK
0138 select HAVE_AT91_SAM9X60_PLL
0139 select MEMORY
0140 select PINCTRL_AT91
0141 select SOC_SAM_V4_V5
0142 select SRAM if PM
0143 help
0144 Select this if you are using Microchip's SAM9X60 SoC
0145
0146 comment "Clocksource driver selection"
0147
0148 config ATMEL_CLOCKSOURCE_PIT
0149 bool "Periodic Interval Timer (PIT) support"
0150 depends on SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
0151 default SOC_AT91SAM9 || SOC_SAMA5
0152 select ATMEL_PIT
0153 help
0154 Select this to get a clocksource based on the Atmel Periodic Interval
0155 Timer. It has a relatively low resolution and the TC Block clocksource
0156 should be preferred.
0157
0158 config ATMEL_CLOCKSOURCE_TCB
0159 bool "Timer Counter Blocks (TCB) support"
0160 default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
0161 select ATMEL_TCB_CLKSRC
0162 help
0163 Select this to get a high precision clocksource based on a
0164 TC block with a 5+ MHz base clock rate.
0165 On platforms with 16-bit counters, two timer channels are combined
0166 to make a single 32-bit timer.
0167 It can also be used as a clock event device supporting oneshot mode.
0168
0169 config MICROCHIP_CLOCKSOURCE_PIT64B
0170 bool "64-bit Periodic Interval Timer (PIT64B) support"
0171 default SOC_SAM9X60 || SOC_SAMA7
0172 select MICROCHIP_PIT64B
0173 help
0174 Select this to get a high resolution clockevent (SAM9X60) or
0175 clocksource and clockevent (SAMA7G5) based on Microchip 64-bit
0176 Periodic Interval Timer.
0177
0178 config HAVE_AT91_UTMI
0179 bool
0180
0181 config HAVE_AT91_USB_CLK
0182 bool
0183
0184 config COMMON_CLK_AT91
0185 bool
0186 select MFD_SYSCON
0187
0188 config HAVE_AT91_SMD
0189 bool
0190
0191 config HAVE_AT91_H32MX
0192 bool
0193
0194 config HAVE_AT91_GENERATED_CLK
0195 bool
0196
0197 config HAVE_AT91_AUDIO_PLL
0198 bool
0199
0200 config HAVE_AT91_I2S_MUX_CLK
0201 bool
0202
0203 config HAVE_AT91_SAM9X60_PLL
0204 bool
0205
0206 config SOC_SAM_V4_V5
0207 bool
0208
0209 config SOC_SAM_V7
0210 bool
0211
0212 config SOC_SAMA5
0213 bool
0214 select ATMEL_AIC5_IRQ
0215 select ATMEL_PM if PM
0216 select ATMEL_SDRAMC
0217 select MEMORY
0218 select SOC_SAM_V7
0219 select SRAM if PM
0220
0221 config ATMEL_PM
0222 bool
0223
0224 config ATMEL_SECURE_PM
0225 bool "Atmel Secure PM support"
0226 depends on SOC_SAMA5D2 && ATMEL_PM
0227 select ARM_PSCI
0228 help
0229 When running under a TEE, the suspend mode must be requested to be set
0230 at TEE level. When enable, this option will use secure monitor calls
0231 to set the suspend level. PSCI is then used to enter suspend.
0232
0233 config SOC_SAMA7
0234 bool
0235 select ARM_GIC
0236 select ATMEL_PM if PM
0237 select ATMEL_SDRAMC
0238 select MEMORY
0239 select SOC_SAM_V7
0240 select SRAM if PM
0241 endif