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