1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "TI OMAP/AM/DM/DRA Family"
3 	depends on ARCH_MULTI_V6 || ARCH_MULTI_V7
4 
5 config OMAP_HWMOD
6 	bool
7 
8 config ARCH_OMAP2
9 	bool "TI OMAP2"
10 	depends on ARCH_MULTI_V6
11 	select ARCH_OMAP2PLUS
12 	select CPU_V6
13 	select OMAP_HWMOD
14 	select SOC_HAS_OMAP2_SDRC
15 
16 config ARCH_OMAP3
17 	bool "TI OMAP3"
18 	depends on ARCH_MULTI_V7
19 	select ARCH_OMAP2PLUS
20 	select ARM_CPU_SUSPEND
21 	select OMAP_HWMOD
22 	select OMAP_INTERCONNECT
23 	select PM_OPP
24 	select SOC_HAS_OMAP2_SDRC
25 	select ARM_ERRATA_430973
26 
27 config ARCH_OMAP4
28 	bool "TI OMAP4"
29 	depends on ARCH_MULTI_V7
30 	select ARCH_OMAP2PLUS
31 	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
32 	select ARM_CPU_SUSPEND
33 	select ARM_ERRATA_720789
34 	select ARM_GIC
35 	select HAVE_ARM_SCU if SMP
36 	select HAVE_ARM_TWD if SMP
37 	select OMAP_INTERCONNECT
38 	select OMAP_INTERCONNECT_BARRIER
39 	select PL310_ERRATA_588369 if CACHE_L2X0
40 	select PL310_ERRATA_727915 if CACHE_L2X0
41 	select PM_OPP
42 	select PM if CPU_IDLE
43 	select ARM_ERRATA_754322
44 	select ARM_ERRATA_775420
45 	select OMAP_INTERCONNECT
46 
47 config SOC_OMAP5
48 	bool "TI OMAP5"
49 	depends on ARCH_MULTI_V7
50 	select ARCH_OMAP2PLUS
51 	select ARM_CPU_SUSPEND
52 	select ARM_GIC
53 	select HAVE_ARM_SCU if SMP
54 	select HAVE_ARM_ARCH_TIMER
55 	select ARM_ERRATA_798181 if SMP
56 	select OMAP_INTERCONNECT
57 	select OMAP_INTERCONNECT_BARRIER
58 	select PM_OPP
59 	select ZONE_DMA if ARM_LPAE
60 
61 config SOC_AM33XX
62 	bool "TI AM33XX"
63 	depends on ARCH_MULTI_V7
64 	select ARCH_OMAP2PLUS
65 	select ARM_CPU_SUSPEND
66 
67 config SOC_AM43XX
68 	bool "TI AM43x"
69 	depends on ARCH_MULTI_V7
70 	select ARCH_OMAP2PLUS
71 	select ARM_GIC
72 	select MACH_OMAP_GENERIC
73 	select HAVE_ARM_SCU
74 	select GENERIC_CLOCKEVENTS_BROADCAST
75 	select HAVE_ARM_TWD
76 	select ARM_ERRATA_754322
77 	select ARM_ERRATA_775420
78 	select OMAP_INTERCONNECT
79 	select ARM_CPU_SUSPEND
80 
81 config SOC_DRA7XX
82 	bool "TI DRA7XX"
83 	depends on ARCH_MULTI_V7
84 	select ARCH_OMAP2PLUS
85 	select ARM_CPU_SUSPEND
86 	select ARM_GIC
87 	select HAVE_ARM_SCU if SMP
88 	select HAVE_ARM_ARCH_TIMER
89 	select IRQ_CROSSBAR
90 	select ARM_ERRATA_798181 if SMP
91 	select OMAP_INTERCONNECT
92 	select OMAP_INTERCONNECT_BARRIER
93 	select PM_OPP
94 	select ZONE_DMA if ARM_LPAE
95 	select PINCTRL_TI_IODELAY if OF && PINCTRL
96 
97 config ARCH_OMAP2PLUS
98 	bool
99 	select ARCH_HAS_BANDGAP
100 	select ARCH_HAS_RESET_CONTROLLER
101 	select ARCH_OMAP
102 	select CLKSRC_MMIO
103 	select GENERIC_IRQ_CHIP
104 	select GPIOLIB
105 	select MACH_OMAP_GENERIC
106 	select MEMORY
107 	select MFD_SYSCON
108 	select OMAP_DM_SYSTIMER
109 	select OMAP_DM_TIMER
110 	select OMAP_GPMC
111 	select PINCTRL
112 	select PM
113 	select PM_GENERIC_DOMAINS
114 	select PM_GENERIC_DOMAINS_OF
115 	select RESET_CONTROLLER
116 	select SOC_BUS
117 	select TI_SYSC
118 	select OMAP_IRQCHIP
119 	select CLKSRC_TI_32K
120 	help
121 	  Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
122 
123 config OMAP_INTERCONNECT_BARRIER
124 	bool
125 	select ARM_HEAVY_MB
126 
127 config ARCH_OMAP
128 	bool
129 
130 if ARCH_OMAP2PLUS
131 
132 menu "TI OMAP2/3/4 Specific Features"
133 
134 config ARCH_OMAP2PLUS_TYPICAL
135 	bool "Typical OMAP configuration"
136 	default y
137 	select AEABI
138 	select HIGHMEM
139 	select I2C
140 	select I2C_OMAP
141 	select MENELAUS if ARCH_OMAP2
142 	select NEON if CPU_V7
143 	select REGULATOR
144 	select REGULATOR_FIXED_VOLTAGE
145 	select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
146 	select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
147 	select VFP
148 	help
149 	  Compile a kernel suitable for booting most boards
150 
151 config SOC_HAS_OMAP2_SDRC
152 	bool "OMAP2 SDRAM Controller support"
153 
154 config SOC_HAS_REALTIME_COUNTER
155 	bool "Real time free running counter"
156 	depends on SOC_OMAP5 || SOC_DRA7XX
157 	default y
158 
159 config POWER_AVS_OMAP
160 	bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
161 	depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
162 	select POWER_SUPPLY
163 	help
164 	  Say Y to enable AVS(Adaptive Voltage Scaling)
165 	  support on OMAP containing the version 1 or
166 	  version 2 of the SmartReflex IP.
167 	  V1 is the 65nm version used in OMAP3430.
168 	  V2 is the update for the 45nm version of the IP used in OMAP3630
169 	  and OMAP4430
170 
171 	  Please note, that by default SmartReflex is only
172 	  initialized and not enabled. To enable the automatic voltage
173 	  compensation for vdd mpu and vdd core from user space,
174 	  user must write 1 to
175 		/debug/smartreflex/sr_<X>/autocomp,
176 	  where X is mpu_iva or core for OMAP3.
177 	  Optionally autocompensation can be enabled in the kernel
178 	  by default during system init via the enable_on_init flag
179 	  which an be passed as platform data to the smartreflex driver.
180 
181 config POWER_AVS_OMAP_CLASS3
182 	bool "Class 3 mode of Smartreflex Implementation"
183 	depends on POWER_AVS_OMAP && TWL4030_CORE
184 	help
185 	  Say Y to enable Class 3 implementation of Smartreflex
186 
187 	  Class 3 implementation of Smartreflex employs continuous hardware
188 	  voltage calibration.
189 
190 config OMAP3_L2_AUX_SECURE_SAVE_RESTORE
191 	bool "OMAP3 HS/EMU save and restore for L2 AUX control register"
192 	depends on ARCH_OMAP3 && PM
193 	help
194 	  Without this option, L2 Auxiliary control register contents are
195 	  lost during off-mode entry on HS/EMU devices. This feature
196 	  requires support from PPA / boot-loader in HS/EMU devices, which
197 	  currently does not exist by default.
198 
199 config OMAP3_L2_AUX_SECURE_SERVICE_SET_ID
200 	int "Service ID for the support routine to set L2 AUX control"
201 	depends on OMAP3_L2_AUX_SECURE_SAVE_RESTORE
202 	default 43
203 	help
204 	  PPA routine service ID for setting L2 auxiliary control register.
205 
206 comment "OMAP Core Type"
207 	depends on ARCH_OMAP2
208 
209 config SOC_OMAP2420
210 	bool "OMAP2420 support"
211 	depends on ARCH_OMAP2
212 	default y
213 	select OMAP_DM_SYSTIMER
214 	select OMAP_DM_TIMER
215 	select SOC_HAS_OMAP2_SDRC
216 
217 config SOC_OMAP2430
218 	bool "OMAP2430 support"
219 	depends on ARCH_OMAP2
220 	default y
221 	select SOC_HAS_OMAP2_SDRC
222 
223 config SOC_OMAP3430
224 	bool "OMAP3430 support"
225 	depends on ARCH_OMAP3
226 	default y
227 	select SOC_HAS_OMAP2_SDRC
228 
229 config SOC_TI81XX
230 	bool "TI81XX support"
231 	depends on ARCH_OMAP3
232 	default y
233 
234 comment "OMAP Legacy Platform Data Board Type"
235 	depends on ARCH_OMAP2PLUS
236 
237 config MACH_OMAP_GENERIC
238 	bool
239 
240 config MACH_OMAP2_TUSB6010
241 	bool
242 	depends on ARCH_OMAP2 && SOC_OMAP2420
243 	default y if MACH_NOKIA_N8X0
244 
245 config MACH_NOKIA_N810
246 	bool
247 
248 config MACH_NOKIA_N810_WIMAX
249 	bool
250 
251 config MACH_NOKIA_N8X0
252 	bool "Nokia N800/N810"
253 	depends on SOC_OMAP2420
254 	default y
255 	select MACH_NOKIA_N810
256 	select MACH_NOKIA_N810_WIMAX
257 
258 endmenu
259 
260 endif
261 
262 config OMAP5_ERRATA_801819
263 	bool "Errata 801819: An eviction from L1 data cache might stall indefinitely"
264 	depends on SOC_OMAP5 || SOC_DRA7XX
265 	help
266 	  A livelock can occur in the L2 cache arbitration that might prevent
267 	  a snoop from completing. Under certain conditions this can cause the
268 	  system to deadlock.
269 
270 endmenu
271