1# SPDX-License-Identifier: GPL-2.0
2#
3# Copyright 2008 Openmoko, Inc.
4#	Simtec Electronics, Ben Dooks <ben@simtec.co.uk>
5
6menuconfig ARCH_S3C64XX
7	bool "Samsung S3C64XX"
8	depends on ARCH_MULTI_V6
9	select ARM_AMBA
10	select ARM_VIC
11	select CLKSRC_SAMSUNG_PWM
12	select COMMON_CLK_SAMSUNG
13	select GPIO_SAMSUNG if ATAGS
14	select GPIOLIB
15	select HAVE_S3C2410_I2C if I2C
16	select HAVE_TCM
17	select PLAT_SAMSUNG
18	select PM_GENERIC_DOMAINS if PM
19	select S3C_DEV_NAND if ATAGS
20	select S3C_GPIO_TRACK if ATAGS
21	select S3C2410_WATCHDOG
22	select SAMSUNG_ATAGS if ATAGS
23	select SAMSUNG_WAKEMASK if PM
24	select WATCHDOG
25	help
26	  Samsung S3C64XX series based systems
27
28if ARCH_S3C64XX
29
30# Configuration options for the S3C6410 CPU
31
32config CPU_S3C6400
33	bool
34	help
35	  Enable S3C6400 CPU support
36
37config CPU_S3C6410
38	bool
39	help
40	  Enable S3C6410 CPU support
41
42config S3C64XX_PL080
43	def_bool DMADEVICES
44	select AMBA_PL08X
45
46config S3C64XX_SETUP_SDHCI
47	bool
48	select S3C64XX_SETUP_SDHCI_GPIO
49	help
50	  Internal configuration for default SDHCI setup for S3C6400 and
51	  S3C6410 SoCs.
52
53config S3C64XX_DEV_ONENAND1
54	bool
55	help
56	  Compile in platform device definition for OneNAND1 controller
57
58config SAMSUNG_DEV_BACKLIGHT
59	bool
60	depends on SAMSUNG_DEV_PWM
61	help
62	  Compile in platform device definition LCD backlight with PWM Timer
63
64# platform specific device setup
65
66config S3C64XX_SETUP_I2C0
67	bool
68	default y
69	help
70	  Common setup code for i2c bus 0.
71
72	  Note, currently since i2c0 is always compiled, this setup helper
73	  is always compiled with it.
74
75config S3C64XX_SETUP_I2C1
76	bool
77	help
78	  Common setup code for i2c bus 1.
79
80config S3C64XX_SETUP_IDE
81	bool
82	help
83	  Common setup code for S3C64XX IDE.
84
85config S3C64XX_SETUP_FB_24BPP
86	bool
87	help
88	  Common setup code for S3C64XX with an 24bpp RGB display helper.
89
90config S3C64XX_SETUP_KEYPAD
91	bool
92	help
93	  Common setup code for S3C64XX KEYPAD GPIO configurations
94
95config S3C64XX_SETUP_SDHCI_GPIO
96	bool
97	help
98	  Common setup code for S3C64XX SDHCI GPIO configurations
99
100config S3C64XX_SETUP_SPI
101	bool
102	help
103	 Common setup code for SPI GPIO configurations
104
105config S3C64XX_SETUP_USB_PHY
106	bool
107	help
108	  Common setup code for USB PHY controller
109
110# S36400 Macchine support
111
112config MACH_SMDK6400
113       bool "SMDK6400"
114	depends on ATAGS
115	select CPU_S3C6400
116	select S3C64XX_SETUP_SDHCI
117	select S3C_DEV_HSMMC1
118	help
119	  Machine support for the Samsung SMDK6400
120
121# S3C6410 machine support
122
123config MACH_ANW6410
124	bool "A&W6410"
125	depends on ATAGS
126	select CPU_S3C6410
127	select S3C64XX_SETUP_FB_24BPP
128	select S3C_DEV_FB
129	help
130	  Machine support for the A&W6410
131
132config MACH_MINI6410
133	bool "MINI6410"
134	depends on ATAGS
135	select CPU_S3C6410
136	select S3C64XX_SETUP_FB_24BPP
137	select S3C64XX_SETUP_SDHCI
138	select S3C_DEV_FB
139	select S3C_DEV_HSMMC
140	select S3C_DEV_HSMMC1
141	select S3C_DEV_NAND
142	select S3C_DEV_USB_HOST
143	select SAMSUNG_DEV_ADC
144	select SAMSUNG_DEV_TS
145	help
146	  Machine support for the FriendlyARM MINI6410
147
148config MACH_REAL6410
149	bool "REAL6410"
150	depends on ATAGS
151	select CPU_S3C6410
152	select S3C64XX_SETUP_FB_24BPP
153	select S3C64XX_SETUP_SDHCI
154	select S3C_DEV_FB
155	select S3C_DEV_HSMMC
156	select S3C_DEV_HSMMC1
157	select S3C_DEV_NAND
158	select S3C_DEV_USB_HOST
159	select SAMSUNG_DEV_ADC
160	select SAMSUNG_DEV_TS
161	help
162	  Machine support for the CoreWind REAL6410
163
164config MACH_SMDK6410
165	bool "SMDK6410"
166	depends on ATAGS
167	select CPU_S3C6410
168	select S3C64XX_SETUP_FB_24BPP
169	select S3C64XX_SETUP_I2C1
170	select S3C64XX_SETUP_IDE
171	select S3C64XX_SETUP_KEYPAD
172	select S3C64XX_SETUP_SDHCI
173	select S3C64XX_SETUP_USB_PHY
174	select S3C_DEV_FB
175	select S3C_DEV_HSMMC
176	select S3C_DEV_HSMMC1
177	select S3C_DEV_I2C1
178	select S3C_DEV_RTC
179	select S3C_DEV_USB_HOST
180	select S3C_DEV_USB_HSOTG
181	select S3C_DEV_WDT
182	select SAMSUNG_DEV_ADC
183	select SAMSUNG_DEV_BACKLIGHT
184	select SAMSUNG_DEV_IDE
185	select SAMSUNG_DEV_KEYPAD
186	select SAMSUNG_DEV_PWM
187	select SAMSUNG_DEV_TS
188	help
189	  Machine support for the Samsung SMDK6410
190
191# At least some of the SMDK6410s were shipped with the card detect
192# for the MMC/SD slots connected to the same input. This means that
193# either the boards need to be altered to have channel0 to an alternate
194# configuration or that only one slot can be used.
195
196choice
197	prompt "SMDK6410 MMC/SD slot setup"
198	depends on MACH_SMDK6410
199
200config SMDK6410_SD_CH0
201	bool "Use channel 0 only"
202	depends on MACH_SMDK6410
203	help
204          Select CON7 (channel 0) as the MMC/SD slot, as
205	  at least some SMDK6410 boards come with the
206	  resistors fitted so that the card detects for
207	  channels 0 and 1 are the same.
208
209config SMDK6410_SD_CH1
210	bool "Use channel 1 only"
211	depends on MACH_SMDK6410
212	help
213          Select CON6 (channel 1) as the MMC/SD slot, as
214	  at least some SMDK6410 boards come with the
215	  resistors fitted so that the card detects for
216	  channels 0 and 1 are the same.
217
218endchoice
219
220config SMDK6410_WM1190_EV1
221	bool "Support Wolfson Microelectronics 1190-EV1 PMIC card"
222	depends on MACH_SMDK6410
223	depends on I2C=y
224	select MFD_WM8350_I2C
225	select REGULATOR
226	select REGULATOR_WM8350
227	help
228	  The Wolfson Microelectronics 1190-EV1 is a WM835x based PMIC
229	  and audio daughtercard for the Samsung SMDK6410 reference
230	  platform.  Enabling this option will build support for this
231	  module into the kernel.  The presence of the module will be
232	  detected at runtime so the resulting kernel can be used
233	  with or without the 1190-EV1 fitted.
234
235config SMDK6410_WM1192_EV1
236	bool "Support Wolfson Microelectronics 1192-EV1 PMIC card"
237	depends on MACH_SMDK6410
238	depends on I2C=y
239	select MFD_WM831X
240	select MFD_WM831X_I2C
241	select REGULATOR
242	select REGULATOR_WM831X
243	help
244	  The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC
245	  daughtercard for the Samsung SMDK6410 reference platform.
246	  Enabling this option will build support for this module into
247	  the kernel.  The presence of the daughtercard will be
248	  detected at runtime so the resulting kernel can be used
249	  with or without the 1192-EV1 fitted.
250
251config MACH_NCP
252	bool "NCP"
253	depends on ATAGS
254	select CPU_S3C6410
255	select S3C64XX_SETUP_I2C1
256	select S3C_DEV_HSMMC1
257	select S3C_DEV_I2C1
258	help
259          Machine support for the Samsung NCP
260
261config MACH_HMT
262	bool "Airgoo HMT"
263	depends on ATAGS
264	select CPU_S3C6410
265	select S3C64XX_SETUP_FB_24BPP
266	select S3C_DEV_FB
267	select S3C_DEV_NAND
268	select S3C_DEV_USB_HOST
269	select SAMSUNG_DEV_PWM
270	help
271	  Machine support for the Airgoo HMT
272
273config MACH_SMARTQ
274	bool
275	select CPU_S3C6410
276	select S3C64XX_SETUP_FB_24BPP
277	select S3C64XX_SETUP_SDHCI
278	select S3C64XX_SETUP_USB_PHY
279	select S3C_DEV_FB
280	select S3C_DEV_HSMMC
281	select S3C_DEV_HSMMC1
282	select S3C_DEV_HSMMC2
283	select S3C_DEV_HWMON
284	select S3C_DEV_RTC
285	select S3C_DEV_USB_HOST
286	select S3C_DEV_USB_HSOTG
287	select SAMSUNG_DEV_ADC
288	select SAMSUNG_DEV_PWM
289	select SAMSUNG_DEV_TS
290	help
291	    Shared machine support for SmartQ 5/7
292
293config MACH_SMARTQ5
294	bool "SmartQ 5"
295	depends on ATAGS
296	select MACH_SMARTQ
297	help
298	    Machine support for the SmartQ 5
299
300config MACH_SMARTQ7
301	bool "SmartQ 7"
302	depends on ATAGS
303	select MACH_SMARTQ
304	help
305	    Machine support for the SmartQ 7
306
307config MACH_WLF_CRAGG_6410
308	bool "Wolfson Cragganmore 6410"
309	depends on ATAGS
310	depends on I2C=y
311	select CPU_S3C6410
312	select LEDS_GPIO_REGISTER
313	select S3C64XX_DEV_SPI0
314	select S3C64XX_SETUP_FB_24BPP
315	select S3C64XX_SETUP_I2C1
316	select S3C64XX_SETUP_IDE
317	select S3C64XX_SETUP_KEYPAD
318	select S3C64XX_SETUP_SDHCI
319	select S3C64XX_SETUP_SPI
320	select S3C64XX_SETUP_USB_PHY
321	select S3C_DEV_FB
322	select S3C_DEV_HSMMC
323	select S3C_DEV_HSMMC1
324	select S3C_DEV_HSMMC2
325	select S3C_DEV_I2C1
326	select S3C_DEV_RTC
327	select S3C_DEV_USB_HOST
328	select S3C_DEV_USB_HSOTG
329	select S3C_DEV_WDT
330	select SAMSUNG_DEV_ADC
331	select SAMSUNG_DEV_KEYPAD
332	select SAMSUNG_DEV_PWM
333	help
334	  Machine support for the Wolfson Cragganmore S3C6410 variant.
335
336config MACH_S3C64XX_DT
337	bool "Samsung S3C6400/S3C6410 machine using Device Tree"
338	select CPU_S3C6400
339	select CPU_S3C6410
340	select PINCTRL
341	select PINCTRL_S3C64XX
342	help
343	  Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
344	  enabled.
345	  Select this if a fdt blob is available for your S3C64XX SoC based
346	  board.
347	  Note: This is under development and not all peripherals can be
348	  supported with this machine file.
349
350endif
351