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