1# SPDX-License-Identifier: GPL-2.0-only
2menu "TI OMAP/AM/DM/DRA Family"
3	depends on ARCH_MULTI_V6 || ARCH_MULTI_V7
4
5config ARCH_OMAP2
6	bool "TI OMAP2"
7	depends on ARCH_MULTI_V6
8	select ARCH_OMAP2PLUS
9	select CPU_V6
10	select SOC_HAS_OMAP2_SDRC
11
12config ARCH_OMAP3
13	bool "TI OMAP3"
14	depends on ARCH_MULTI_V7
15	select ARCH_OMAP2PLUS
16	select ARM_CPU_SUSPEND if PM
17	select OMAP_INTERCONNECT
18	select PM_OPP if PM
19	select PM if CPU_IDLE
20	select SOC_HAS_OMAP2_SDRC
21	select ARM_ERRATA_430973
22
23config ARCH_OMAP4
24	bool "TI OMAP4"
25	depends on ARCH_MULTI_V7
26	select ARCH_OMAP2PLUS
27	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
28	select ARM_CPU_SUSPEND if PM
29	select ARM_ERRATA_720789
30	select ARM_GIC
31	select HAVE_ARM_SCU if SMP
32	select HAVE_ARM_TWD if SMP
33	select OMAP_INTERCONNECT
34	select OMAP_INTERCONNECT_BARRIER
35	select PL310_ERRATA_588369 if CACHE_L2X0
36	select PL310_ERRATA_727915 if CACHE_L2X0
37	select PM_OPP if PM
38	select PM if CPU_IDLE
39	select ARM_ERRATA_754322
40	select ARM_ERRATA_775420
41	select OMAP_INTERCONNECT
42
43config SOC_OMAP5
44	bool "TI OMAP5"
45	depends on ARCH_MULTI_V7
46	select ARCH_OMAP2PLUS
47	select ARM_CPU_SUSPEND if PM
48	select ARM_GIC
49	select HAVE_ARM_SCU if SMP
50	select HAVE_ARM_ARCH_TIMER
51	select ARM_ERRATA_798181 if SMP
52	select OMAP_INTERCONNECT
53	select OMAP_INTERCONNECT_BARRIER
54	select PM_OPP if PM
55	select ZONE_DMA if ARM_LPAE
56
57config SOC_AM33XX
58	bool "TI AM33XX"
59	depends on ARCH_MULTI_V7
60	select ARCH_OMAP2PLUS
61	select ARM_CPU_SUSPEND if PM
62
63config SOC_AM43XX
64	bool "TI AM43x"
65	depends on ARCH_MULTI_V7
66	select ARCH_OMAP2PLUS
67	select ARM_GIC
68	select MACH_OMAP_GENERIC
69	select HAVE_ARM_SCU
70	select GENERIC_CLOCKEVENTS_BROADCAST
71	select HAVE_ARM_TWD
72	select ARM_ERRATA_754322
73	select ARM_ERRATA_775420
74	select OMAP_INTERCONNECT
75	select ARM_CPU_SUSPEND if PM
76
77config SOC_DRA7XX
78	bool "TI DRA7XX"
79	depends on ARCH_MULTI_V7
80	select ARCH_OMAP2PLUS
81	select ARM_CPU_SUSPEND if PM
82	select ARM_GIC
83	select HAVE_ARM_SCU if SMP
84	select HAVE_ARM_ARCH_TIMER
85	select IRQ_CROSSBAR
86	select ARM_ERRATA_798181 if SMP
87	select OMAP_INTERCONNECT
88	select OMAP_INTERCONNECT_BARRIER
89	select PM_OPP if PM
90	select ZONE_DMA if ARM_LPAE
91	select PINCTRL_TI_IODELAY if OF && PINCTRL
92
93config ARCH_OMAP2PLUS
94	bool
95	select ARCH_HAS_BANDGAP
96	select ARCH_HAS_HOLES_MEMORYMODEL
97	select ARCH_HAS_RESET_CONTROLLER
98	select ARCH_OMAP
99	select CLKSRC_MMIO
100	select GENERIC_IRQ_CHIP
101	select GPIOLIB
102	select MACH_OMAP_GENERIC
103	select MEMORY
104	select MFD_SYSCON
105	select OMAP_DM_TIMER
106	select OMAP_GPMC
107	select PINCTRL
108	select PM_GENERIC_DOMAINS if PM
109	select PM_GENERIC_DOMAINS_OF if PM
110	select RESET_CONTROLLER
111	select SOC_BUS
112	select TI_SYSC
113	select OMAP_IRQCHIP
114	select CLKSRC_TI_32K
115	help
116	  Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
117
118config OMAP_INTERCONNECT_BARRIER
119	bool
120	select ARM_HEAVY_MB
121
122
123if ARCH_OMAP2PLUS
124
125menu "TI OMAP2/3/4 Specific Features"
126
127config ARCH_OMAP2PLUS_TYPICAL
128	bool "Typical OMAP configuration"
129	default y
130	select AEABI
131	select HIGHMEM
132	select I2C
133	select I2C_OMAP
134	select MENELAUS if ARCH_OMAP2
135	select NEON if CPU_V7
136	select PM
137	select REGULATOR
138	select REGULATOR_FIXED_VOLTAGE
139	select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
140	select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
141	select VFP
142	help
143	  Compile a kernel suitable for booting most boards
144
145config SOC_HAS_OMAP2_SDRC
146	bool "OMAP2 SDRAM Controller support"
147
148config SOC_HAS_REALTIME_COUNTER
149	bool "Real time free running counter"
150	depends on SOC_OMAP5 || SOC_DRA7XX
151	default y
152
153comment "OMAP Core Type"
154	depends on ARCH_OMAP2
155
156config SOC_OMAP2420
157	bool "OMAP2420 support"
158	depends on ARCH_OMAP2
159	default y
160	select OMAP_DM_TIMER
161	select SOC_HAS_OMAP2_SDRC
162
163config SOC_OMAP2430
164	bool "OMAP2430 support"
165	depends on ARCH_OMAP2
166	default y
167	select SOC_HAS_OMAP2_SDRC
168
169config SOC_OMAP3430
170	bool "OMAP3430 support"
171	depends on ARCH_OMAP3
172	default y
173	select SOC_HAS_OMAP2_SDRC
174
175config SOC_TI81XX
176	bool "TI81XX support"
177	depends on ARCH_OMAP3
178	default y
179
180config OMAP_PACKAGE_CBC
181       bool
182
183config OMAP_PACKAGE_CBB
184       bool
185
186config OMAP_PACKAGE_CUS
187       bool
188
189config OMAP_PACKAGE_CBP
190       bool
191
192comment "OMAP Legacy Platform Data Board Type"
193	depends on ARCH_OMAP2PLUS
194
195config MACH_OMAP_GENERIC
196	bool
197
198config MACH_OMAP2_TUSB6010
199	bool
200	depends on ARCH_OMAP2 && SOC_OMAP2420
201	default y if MACH_NOKIA_N8X0
202
203config MACH_OMAP3517EVM
204	bool "OMAP3517/ AM3517 EVM board"
205	depends on ARCH_OMAP3
206	default y
207
208config MACH_OMAP3_PANDORA
209	bool "OMAP3 Pandora"
210	depends on ARCH_OMAP3
211	default y
212	select OMAP_PACKAGE_CBB
213
214config MACH_NOKIA_N810
215       bool
216
217config MACH_NOKIA_N810_WIMAX
218       bool
219
220config MACH_NOKIA_N8X0
221	bool "Nokia N800/N810"
222	depends on SOC_OMAP2420
223	default y
224	select MACH_NOKIA_N810
225	select MACH_NOKIA_N810_WIMAX
226
227config OMAP3_SDRC_AC_TIMING
228	bool "Enable SDRC AC timing register changes"
229	depends on ARCH_OMAP3
230	help
231	  If you know that none of your system initiators will attempt to
232	  access SDRAM during CORE DVFS, select Y here.  This should boost
233	  SDRAM performance at lower CORE OPPs.  There are relatively few
234	  users who will wish to say yes at this point - almost everyone will
235	  wish to say no.  Selecting yes without understanding what is
236	  going on could result in system crashes;
237
238endmenu
239
240endif
241
242config OMAP5_ERRATA_801819
243	bool "Errata 801819: An eviction from L1 data cache might stall indefinitely"
244	depends on SOC_OMAP5 || SOC_DRA7XX
245	help
246	  A livelock can occur in the L2 cache arbitration that might prevent
247	  a snoop from completing. Under certain conditions this can cause the
248	  system to deadlock.
249
250endmenu
251