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