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_S3C2410_WATCHDOG if WATCHDOG
17	select HAVE_TCM
18	select PLAT_SAMSUNG
19	select PM_GENERIC_DOMAINS if PM
20	select S3C_DEV_NAND if ATAGS
21	select S3C_GPIO_TRACK if ATAGS
22	select SAMSUNG_ATAGS if ATAGS
23	select SAMSUNG_WAKEMASK if PM
24	select SAMSUNG_WDT_RESET
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 HAVE_S3C2410_WATCHDOG if WATCHDOG
169	select S3C64XX_SETUP_FB_24BPP
170	select S3C64XX_SETUP_I2C1
171	select S3C64XX_SETUP_IDE
172	select S3C64XX_SETUP_KEYPAD
173	select S3C64XX_SETUP_SDHCI
174	select S3C64XX_SETUP_USB_PHY
175	select S3C_DEV_FB
176	select S3C_DEV_HSMMC
177	select S3C_DEV_HSMMC1
178	select S3C_DEV_I2C1
179	select S3C_DEV_RTC
180	select S3C_DEV_USB_HOST
181	select S3C_DEV_USB_HSOTG
182	select S3C_DEV_WDT
183	select SAMSUNG_DEV_ADC
184	select SAMSUNG_DEV_BACKLIGHT
185	select SAMSUNG_DEV_IDE
186	select SAMSUNG_DEV_KEYPAD
187	select SAMSUNG_DEV_PWM
188	select SAMSUNG_DEV_TS
189	help
190	  Machine support for the Samsung SMDK6410
191
192# At least some of the SMDK6410s were shipped with the card detect
193# for the MMC/SD slots connected to the same input. This means that
194# either the boards need to be altered to have channel0 to an alternate
195# configuration or that only one slot can be used.
196
197choice
198	prompt "SMDK6410 MMC/SD slot setup"
199	depends on MACH_SMDK6410
200
201config SMDK6410_SD_CH0
202	bool "Use channel 0 only"
203	depends on MACH_SMDK6410
204	help
205          Select CON7 (channel 0) as the MMC/SD slot, as
206	  at least some SMDK6410 boards come with the
207	  resistors fitted so that the card detects for
208	  channels 0 and 1 are the same.
209
210config SMDK6410_SD_CH1
211	bool "Use channel 1 only"
212	depends on MACH_SMDK6410
213	help
214          Select CON6 (channel 1) as the MMC/SD slot, as
215	  at least some SMDK6410 boards come with the
216	  resistors fitted so that the card detects for
217	  channels 0 and 1 are the same.
218
219endchoice
220
221config SMDK6410_WM1190_EV1
222	bool "Support Wolfson Microelectronics 1190-EV1 PMIC card"
223	depends on MACH_SMDK6410
224	depends on I2C=y
225	select MFD_WM8350_I2C
226	select REGULATOR
227	select REGULATOR_WM8350
228	help
229	  The Wolfson Microelectronics 1190-EV1 is a WM835x based PMIC
230	  and audio daughtercard for the Samsung SMDK6410 reference
231	  platform.  Enabling this option will build support for this
232	  module into the kernel.  The presence of the module will be
233	  detected at runtime so the resulting kernel can be used
234	  with or without the 1190-EV1 fitted.
235
236config SMDK6410_WM1192_EV1
237	bool "Support Wolfson Microelectronics 1192-EV1 PMIC card"
238	depends on MACH_SMDK6410
239	depends on I2C=y
240	select MFD_WM831X
241	select MFD_WM831X_I2C
242	select REGULATOR
243	select REGULATOR_WM831X
244	help
245	  The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC
246	  daughtercard for the Samsung SMDK6410 reference platform.
247	  Enabling this option will build support for this module into
248	  the kernel.  The presence of the daughtercard will be
249	  detected at runtime so the resulting kernel can be used
250	  with or without the 1192-EV1 fitted.
251
252config MACH_NCP
253	bool "NCP"
254	depends on ATAGS
255	select CPU_S3C6410
256	select S3C64XX_SETUP_I2C1
257	select S3C_DEV_HSMMC1
258	select S3C_DEV_I2C1
259	help
260          Machine support for the Samsung NCP
261
262config MACH_HMT
263	bool "Airgoo HMT"
264	depends on ATAGS
265	select CPU_S3C6410
266	select S3C64XX_SETUP_FB_24BPP
267	select S3C_DEV_FB
268	select S3C_DEV_NAND
269	select S3C_DEV_USB_HOST
270	select SAMSUNG_DEV_PWM
271	help
272	  Machine support for the Airgoo HMT
273
274config MACH_SMARTQ
275	bool
276	select CPU_S3C6410
277	select S3C64XX_SETUP_FB_24BPP
278	select S3C64XX_SETUP_SDHCI
279	select S3C64XX_SETUP_USB_PHY
280	select S3C_DEV_FB
281	select S3C_DEV_HSMMC
282	select S3C_DEV_HSMMC1
283	select S3C_DEV_HSMMC2
284	select S3C_DEV_HWMON
285	select S3C_DEV_RTC
286	select S3C_DEV_USB_HOST
287	select S3C_DEV_USB_HSOTG
288	select SAMSUNG_DEV_ADC
289	select SAMSUNG_DEV_PWM
290	select SAMSUNG_DEV_TS
291	help
292	    Shared machine support for SmartQ 5/7
293
294config MACH_SMARTQ5
295	bool "SmartQ 5"
296	depends on ATAGS
297	select MACH_SMARTQ
298	help
299	    Machine support for the SmartQ 5
300
301config MACH_SMARTQ7
302	bool "SmartQ 7"
303	depends on ATAGS
304	select MACH_SMARTQ
305	help
306	    Machine support for the SmartQ 7
307
308config MACH_WLF_CRAGG_6410
309	bool "Wolfson Cragganmore 6410"
310	depends on ATAGS
311	depends on I2C=y
312	select CPU_S3C6410
313	select LEDS_GPIO_REGISTER
314	select S3C64XX_DEV_SPI0
315	select S3C64XX_SETUP_FB_24BPP
316	select S3C64XX_SETUP_I2C1
317	select S3C64XX_SETUP_IDE
318	select S3C64XX_SETUP_KEYPAD
319	select S3C64XX_SETUP_SDHCI
320	select S3C64XX_SETUP_SPI
321	select S3C64XX_SETUP_USB_PHY
322	select S3C_DEV_FB
323	select S3C_DEV_HSMMC
324	select S3C_DEV_HSMMC1
325	select S3C_DEV_HSMMC2
326	select S3C_DEV_I2C1
327	select S3C_DEV_RTC
328	select S3C_DEV_USB_HOST
329	select S3C_DEV_USB_HSOTG
330	select S3C_DEV_WDT
331	select SAMSUNG_DEV_ADC
332	select SAMSUNG_DEV_KEYPAD
333	select SAMSUNG_DEV_PWM
334	help
335	  Machine support for the Wolfson Cragganmore S3C6410 variant.
336
337config MACH_S3C64XX_DT
338	bool "Samsung S3C6400/S3C6410 machine using Device Tree"
339	select TIMER_OF
340	select CPU_S3C6400
341	select CPU_S3C6410
342	select PINCTRL
343	select PINCTRL_S3C64XX
344	help
345	  Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
346	  enabled.
347	  Select this if a fdt blob is available for your S3C64XX SoC based
348	  board.
349	  Note: This is under development and not all peripherals can be
350	  supported with this machine file.
351
352endif
353