1if ARCH_EXYNOS
2
3config BOARD_COMMON
4	def_bool y
5	depends on !TARGET_SMDKV310 && !TARGET_ARNDALE && !TARGET_E850_96
6
7config SPI_BOOTING
8	bool
9
10config USB_BOOTING
11	bool
12
13choice
14	prompt "EXYNOS architecture type select"
15	optional
16
17config ARCH_EXYNOS4
18	bool "Exynos4 SoC family"
19	select BOARD_EARLY_INIT_F
20	select CPU_V7A
21	select BLK
22	select DM_MMC
23	help
24	  Samsung Exynos4 SoC family are based on ARM Cortex-A9 CPU. There
25	  are multiple SoCs in this family including Exynos4210, Exynos4412,
26	  and Exynos4212.
27
28config ARCH_EXYNOS5
29	bool "Exynos5 SoC family"
30	select BOARD_EARLY_INIT_F
31	select CPU_V7A
32	select SHA_HW_ACCEL
33	select SPI_BOOTING if EXYNOS5_DT
34	select USB_BOOTING
35	imply CMD_HASH
36	imply CRC32_VERIFY
37	imply HASH_VERIFY
38	imply KEYBOARD
39	imply USB_ETHER_ASIX
40	imply USB_ETHER_RTL8152
41	imply USB_ETHER_SMSC95XX
42	select BLK
43	select DM_MMC
44
45	help
46	  Samsung Exynos5 SoC family are based on ARM Cortex-A15 CPU (and
47	  Cortex-A7 CPU in big.LITTLE configuration). There are multiple SoCs
48	  in this family including Exynos5250, Exynos5420 and Exynos5800.
49
50config ARCH_EXYNOS7
51	bool "Exynos7 SoC family"
52	select ARM64
53	select BOARD_EARLY_INIT_F
54	select BLK
55	select DM_MMC
56	help
57	  Samsung Exynos7 SoC family are based on ARM Cortex-A57 CPU or
58	  Cortex-A53 CPU (and some in a big.LITTLE configuration). There are
59	  multiple SoCs in this family including Exynos7420.
60
61config ARCH_EXYNOS9
62	bool "Exynos9 SoC family"
63	select ARM64
64	select BLK
65	select DM_MMC
66	help
67	  Samsung Exynos9 SoC family are based on ARMv8 Cortex CPU. There are
68	  multiple SoCs in this family including Exynos850.
69
70endchoice
71
72if ARCH_EXYNOS4
73
74config EXYNOS4210
75	bool
76
77choice
78	prompt "EXYNOS4 board select"
79
80config TARGET_SMDKV310
81	bool "Exynos4210 SMDKV310 board"
82	select EXYNOS4210
83	select OF_CONTROL
84	select SUPPORT_SPL
85
86config TARGET_TRATS
87	select MISC_COMMON
88	bool "Exynos4210 Trats board"
89
90config TARGET_S5PC210_UNIVERSAL
91	bool "EXYNOS4210 Universal C210 board"
92	select MISC_COMMON
93
94config TARGET_ORIGEN
95	bool "Exynos4412 Origen board"
96	select EXYNOS4210
97	select SUPPORT_SPL
98
99config TARGET_TRATS2
100	bool "Exynos4412 Trat2 board"
101	select MISC_COMMON
102
103config TARGET_ODROID
104	bool "Exynos4412 Odroid board"
105	select MISC_COMMON
106
107endchoice
108endif
109
110if ARCH_EXYNOS5
111
112config EXYNOS5250
113	bool
114
115config EXYNOS5420
116	bool
117
118config EXYNOS5_DT
119	bool
120
121config SPL_GPIO
122	default y
123
124config SPL_LIBCOMMON_SUPPORT
125	default y
126
127config SPL_LIBGENERIC_SUPPORT
128	default y
129
130choice
131	prompt "EXYNOS5 board select"
132
133config TARGET_ODROID_XU3
134	bool "Exynos5422 Odroid board"
135	select EXYNOS5_DT
136	select EXYNOS5420
137	select MISC_COMMON
138	select OF_CONTROL
139
140config TARGET_ARNDALE
141	bool "Exynos5250 Arndale board"
142	select ARM_ERRATA_773022
143	select ARM_ERRATA_774769
144	select CPU_V7_HAS_NONSEC
145	select CPU_V7_HAS_VIRT
146	select EXYNOS5250
147	select OF_CONTROL
148	select SUPPORT_SPL
149
150config TARGET_SMDK5250
151	bool "SMDK5250 board"
152	select EXYNOS5_DT
153	select EXYNOS5250
154	select OF_CONTROL
155	select SUPPORT_SPL
156
157config TARGET_SNOW
158	bool "Snow board"
159	select EXYNOS5_DT
160	select EXYNOS5250
161	select OF_CONTROL
162	select SUPPORT_SPL
163
164config TARGET_SPRING
165	bool "Spring board"
166	select EXYNOS5_DT
167	select EXYNOS5250
168	select OF_CONTROL
169	select SUPPORT_SPL
170
171config TARGET_SMDK5420
172	bool "SMDK5420 board"
173	select EXYNOS5_DT
174	select EXYNOS5420
175	select OF_CONTROL
176	select SUPPORT_SPL
177
178config TARGET_PEACH_PI
179	bool "Peach Pi board"
180	select EXYNOS5_DT
181	select EXYNOS5420
182	select OF_CONTROL
183	select SUPPORT_SPL
184
185config TARGET_PEACH_PIT
186	bool "Peach Pit board"
187	select EXYNOS5_DT
188	select EXYNOS5420
189	select OF_CONTROL
190	select SUPPORT_SPL
191
192endchoice
193endif
194
195if ARCH_EXYNOS7
196
197choice
198	prompt "EXYNOS7 board select"
199
200config TARGET_ESPRESSO7420
201	bool "ESPRESSO7420 board"
202	select ARM64
203	select ARMV8_MULTIENTRY
204	select CLK_EXYNOS
205	select OF_CONTROL
206	select PINCTRL
207	select PINCTRL_EXYNOS7420
208	select SUPPORT_SPL
209
210config  TARGET_A5Y17LTE
211	bool "Samsung SM-A520F board"
212	select ARM64
213	select CLK_EXYNOS
214	select OF_CONTROL
215	select PINCTRL
216	select PINCTRL_EXYNOS78x0
217	select SUPPORT_SPL
218
219config  TARGET_A7Y17LTE
220	bool "Samsung SM-A720F board"
221	select ARM64
222	select CLK_EXYNOS
223	select OF_CONTROL
224	select PINCTRL
225	select PINCTRL_EXYNOS78x0
226	select SUPPORT_SPL
227
228config  TARGET_A3Y17LTE
229	bool "Samsung SM-A320F board"
230	select ARM64
231	select CLK_EXYNOS
232	select OF_CONTROL
233	select PINCTRL
234	select PINCTRL_EXYNOS78x0
235	select SUPPORT_SPL
236
237endchoice
238endif
239
240if ARCH_EXYNOS9
241
242choice
243	prompt "EXYNOS9 board select"
244
245config TARGET_E850_96
246	bool "WinLink E850-96 board"
247	select ARM64
248	select CLK_EXYNOS
249	select OF_CONTROL
250	select PINCTRL
251	select PINCTRL_EXYNOS850
252	imply OF_UPSTREAM
253
254endchoice
255endif
256
257config SYS_SOC
258	default "exynos"
259
260config EXYNOS_ACE_SHA
261	bool "Advanced Crypto Engine SHA support"
262	depends on (ARCH_EXYNOS4 || ARCH_EXYNOS5) && (LIB_HW_RAND || SHA_HW_ACCEL)
263	default y if ARCH_EXYNOS5
264
265config EXYNOS_TMU
266	bool "Exynos5 thermal management unit support"
267	depends on ARCH_EXYNOS5
268	default y
269
270source "board/samsung/smdkv310/Kconfig"
271source "board/samsung/trats/Kconfig"
272source "board/samsung/universal_c210/Kconfig"
273source "board/samsung/origen/Kconfig"
274source "board/samsung/trats2/Kconfig"
275source "board/samsung/odroid/Kconfig"
276source "board/samsung/arndale/Kconfig"
277source "board/samsung/smdk5250/Kconfig"
278source "board/samsung/smdk5420/Kconfig"
279source "board/samsung/espresso7420/Kconfig"
280source "board/samsung/axy17lte/Kconfig"
281source "board/samsung/e850-96/Kconfig"
282
283endif
284