1# SPDX-License-Identifier: GPL-2.0
2#
3# Copyright (c) 2012 Samsung Electronics Co., Ltd.
4#		http://www.samsung.com/
5#
6# Copyright 2007 Simtec Electronics
7menuconfig ARCH_S3C24XX
8	bool "Samsung S3C24XX SoCs (deprecated, see help)"
9	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5
10	depends on CPU_LITTLE_ENDIAN
11	depends on ATAGS && UNUSED_BOARD_FILES
12	select CLKSRC_SAMSUNG_PWM
13	select GPIO_SAMSUNG
14	select GPIOLIB
15	select S3C2410_WATCHDOG
16	select SAMSUNG_ATAGS
17	select WATCHDOG
18	help
19	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
20	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
21	  (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
22	  Samsung SMDK2410 development board (and derivatives).
23
24	  The platform is deprecated and scheduled for removal. Please reach to
25	  the maintainers of the platform and linux-samsung-soc@vger.kernel.org if
26	  you still use it.
27	  Without such feedback, the platform will be removed after 2022.
28
29if ARCH_S3C24XX
30
31config PLAT_S3C24XX
32	def_bool y
33	select GPIOLIB
34	select NO_IOPORT_MAP
35	select S3C_DEV_NAND
36	select COMMON_CLK
37	help
38	  Base platform code for any Samsung S3C24XX device
39
40menu "Samsung S3C24XX SoCs Support"
41
42comment "S3C24XX SoCs"
43
44config CPU_S3C2410
45	bool "Samsung S3C2410"
46	depends on ARCH_MULTI_V4T
47	default y
48	select CPU_ARM920T
49	select S3C2410_COMMON_CLK
50	select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ
51	select S3C2410_PM if PM
52	help
53	  Support for S3C2410 and S3C2410A family from the S3C24XX line
54	  of Samsung Mobile CPUs.
55
56config CPU_S3C2412
57	bool "Samsung S3C2412"
58	depends on ARCH_MULTI_V5
59	select CPU_ARM926T
60	select S3C2412_COMMON_CLK
61	select S3C2412_PM if PM_SLEEP
62	help
63	  Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line
64
65config CPU_S3C2416
66	bool "Samsung S3C2416/S3C2450"
67	depends on ARCH_MULTI_V5
68	select CPU_ARM926T
69	select S3C2416_PM if PM_SLEEP
70	select S3C2443_COMMON_CLK
71	help
72	  Support for the S3C2416 SoC from the S3C24XX line
73
74config CPU_S3C2440
75	bool "Samsung S3C2440"
76	depends on ARCH_MULTI_V4T
77	select CPU_ARM920T
78	select S3C2410_COMMON_CLK
79	select S3C2410_PM if PM_SLEEP
80	help
81	  Support for S3C2440 Samsung Mobile CPU based systems.
82
83config CPU_S3C2442
84	bool "Samsung S3C2442"
85	depends on ARCH_MULTI_V4T
86	select CPU_ARM920T
87	select S3C2410_COMMON_CLK
88	select S3C2410_PM if PM_SLEEP
89	help
90	  Support for S3C2442 Samsung Mobile CPU based systems.
91
92config CPU_S3C244X
93	def_bool y
94	depends on CPU_S3C2440 || CPU_S3C2442
95
96config CPU_S3C2443
97	bool "Samsung S3C2443"
98	depends on ARCH_MULTI_V4T
99	select CPU_ARM920T
100	select S3C2443_COMMON_CLK
101	help
102	  Support for the S3C2443 SoC from the S3C24XX line
103
104# common code
105
106config S3C24XX_SMDK
107	bool
108	help
109	  Common machine code for SMDK2410 and SMDK2440
110
111config S3C24XX_SIMTEC_AUDIO
112	bool
113	depends on (ARCH_BAST || MACH_VR1000 || MACH_OSIRIS || MACH_ANUBIS)
114	default y
115	help
116	  Add audio devices for common Simtec S3C24XX boards
117
118config S3C24XX_SIMTEC_PM
119	bool
120	help
121	  Common power management code for systems that are
122	  compatible with the Simtec style of power management
123
124config S3C24XX_SIMTEC_USB
125	bool
126	help
127	  USB management code for common Simtec S3C24XX boards
128
129config S3C24XX_SETUP_TS
130	bool
131	help
132	  Compile in platform device definition for Samsung TouchScreen.
133
134config S3C2410_PM
135	bool
136	help
137	  Power Management code common to S3C2410 and better
138
139config S3C24XX_PLL
140	bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
141	depends on ARM_S3C24XX_CPUFREQ
142	help
143	  Compile in support for changing the PLL frequency from the
144	  S3C24XX series CPUfreq driver. The PLL takes time to settle
145	  after a frequency change, so by default it is not enabled.
146
147	  This also means that the PLL tables for the selected CPU(s) will
148	  be built which may increase the size of the kernel image.
149
150# cpu frequency items common between s3c2410 and s3c2440/s3c2442
151
152config S3C2410_IOTIMING
153	bool
154	depends on ARM_S3C24XX_CPUFREQ
155	help
156	  Internal node to select io timing code that is common to the s3c2410
157	  and s3c2440/s3c2442 cpu frequency support.
158
159# cpu frequency support common to s3c2412, s3c2413 and s3c2442
160
161config S3C2412_IOTIMING
162	bool
163	depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2412 || CPU_S3C2443)
164	help
165	  Intel node to select io timing code that is common to the s3c2412
166	  and the s3c2443.
167
168# cpu-specific sections
169
170if CPU_S3C2410
171
172config S3C2410_PLL
173	bool
174	depends on ARM_S3C2410_CPUFREQ && S3C24XX_PLL
175	default y
176	help
177	  Select the PLL table for the S3C2410
178
179config S3C24XX_SIMTEC_NOR
180	bool
181	help
182	  Internal node to specify machine has simtec NOR mapping
183
184config MACH_BAST_IDE
185	bool
186	select HAVE_PATA_PLATFORM
187	help
188	  Internal node for machines with an BAST style IDE
189	  interface
190
191comment "S3C2410 Boards"
192
193#
194# The "S3C2410 Boards" list is ordered alphabetically by option text.
195# (without ARCH_ or MACH_)
196#
197
198config MACH_AML_M5900
199	bool "AML M5900 Series"
200	select S3C24XX_SIMTEC_PM if PM
201	select S3C_DEV_USB_HOST
202	help
203	  Say Y here if you are using the American Microsystems M5900 Series
204	  <http://www.amltd.com>
205
206config ARCH_BAST
207	bool "Simtec Electronics BAST (EB2410ITX)"
208	select MACH_BAST_IDE
209	select S3C2410_COMMON_DCLK
210	select S3C2410_IOTIMING if ARM_S3C2410_CPUFREQ
211	select S3C24XX_SIMTEC_NOR
212	select S3C24XX_SIMTEC_PM if PM
213	select S3C24XX_SIMTEC_USB
214	select S3C_DEV_HWMON
215	select S3C_DEV_NAND
216	select S3C_DEV_USB_HOST
217	help
218	  Say Y here if you are using the Simtec Electronics EB2410ITX
219	  development board (also known as BAST)
220
221config BAST_PC104_IRQ
222	bool "BAST PC104 IRQ support"
223	depends on ARCH_BAST
224	default y
225	help
226	  Say Y	here to enable the PC104 IRQ routing on the
227	  Simtec BAST (EB2410ITX)
228
229config ARCH_H1940
230	bool "IPAQ H1940"
231	select PM_H1940 if PM
232	select S3C24XX_SETUP_TS
233	select S3C_DEV_NAND
234	select S3C_DEV_USB_HOST
235	help
236	  Say Y here if you are using the HP IPAQ H1940
237
238config H1940BT
239	tristate "Control the state of H1940 bluetooth chip"
240	depends on ARCH_H1940
241	depends on RFKILL
242	help
243	  This is a simple driver that is able to control
244	  the state of built in bluetooth chip on h1940.
245
246config MACH_N30
247	bool "Acer N30 family"
248	select S3C_DEV_NAND
249	select S3C_DEV_USB_HOST
250	help
251	  Say Y here if you want suppt for the Acer N30, Acer N35,
252	  Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs.
253
254config MACH_OTOM
255	bool "NexVision OTOM Board"
256	select S3C_DEV_NAND
257	select S3C_DEV_USB_HOST
258	help
259	  Say Y here if you are using the Nex Vision OTOM board
260
261config MACH_QT2410
262	bool "QT2410"
263	select S3C_DEV_NAND
264	select S3C_DEV_USB_HOST
265	help
266	  Say Y here if you are using the Armzone QT2410
267
268config ARCH_SMDK2410
269	bool "SMDK2410/A9M2410"
270	select S3C24XX_SMDK
271	select S3C_DEV_USB_HOST
272	help
273	  Say Y here if you are using the SMDK2410 or the derived module A9M2410
274	  <http://www.fsforth.de>
275
276config MACH_TCT_HAMMER
277	bool "TCT Hammer Board"
278	select S3C_DEV_USB_HOST
279	help
280	  Say Y here if you are using the TinCanTools Hammer Board
281	  <https://www.tincantools.com>
282
283config MACH_VR1000
284	bool "Thorcom VR1000"
285	select MACH_BAST_IDE
286	select S3C2410_COMMON_DCLK
287	select S3C24XX_SIMTEC_NOR
288	select S3C24XX_SIMTEC_PM if PM
289	select S3C24XX_SIMTEC_USB
290	select S3C_DEV_USB_HOST
291	help
292	  Say Y here if you are using the Thorcom VR1000 board.
293
294endif # CPU_S3C2410
295
296config S3C2412_PM_SLEEP
297	bool
298	help
299	  Internal config node to apply sleep for S3C2412 power management.
300	  Can be selected by another SoCs such as S3C2416 with similar
301	  sleep procedure.
302
303if CPU_S3C2412
304
305config CPU_S3C2412_ONLY
306	bool
307	depends on !CPU_S3C2410 && !CPU_S3C2416 && !CPU_S3C2440 && \
308		   !CPU_S3C2442 && !CPU_S3C2443
309	default y
310
311config S3C2412_PM
312	bool
313	select S3C2412_PM_SLEEP
314	select SAMSUNG_WAKEMASK
315	help
316	  Internal config node to apply S3C2412 power management
317
318comment "S3C2412 Boards"
319
320#
321# The "S3C2412 Boards" list is ordered alphabetically by option text.
322# (without ARCH_ or MACH_)
323#
324
325config MACH_JIVE
326	bool "Logitech Jive"
327	select S3C_DEV_NAND
328	select S3C_DEV_USB_HOST
329	help
330	  Say Y here if you are using the Logitech Jive.
331
332config MACH_JIVE_SHOW_BOOTLOADER
333	bool "Allow access to bootloader partitions in MTD"
334	depends on MACH_JIVE
335
336config MACH_S3C2413
337	bool
338	help
339	  Internal node for S3C2413 version of SMDK2413, so that
340	  machine_is_s3c2413() will work when MACH_SMDK2413 is
341	  selected
342
343config MACH_SMDK2412
344	bool "SMDK2412"
345	select MACH_SMDK2413
346	help
347	  Say Y here if you are using an SMDK2412
348
349	  Note, this shares support with SMDK2413, so will automatically
350	  select MACH_SMDK2413.
351
352config MACH_SMDK2413
353	bool "SMDK2413"
354	select MACH_S3C2413
355	select S3C24XX_SMDK
356	select S3C_DEV_NAND
357	select S3C_DEV_USB_HOST
358	help
359	  Say Y here if you are using an SMDK2413
360
361config MACH_VSTMS
362	bool "VMSTMS"
363	select S3C_DEV_NAND
364	select S3C_DEV_USB_HOST
365	help
366	  Say Y here if you are using an VSTMS board
367
368endif # CPU_S3C2412
369
370if CPU_S3C2416
371
372config S3C2416_PM
373	bool
374	select S3C2412_PM_SLEEP
375	select SAMSUNG_WAKEMASK
376	help
377	  Internal config node to apply S3C2416 power management
378
379config S3C2416_SETUP_SDHCI
380	bool
381	select S3C2416_SETUP_SDHCI_GPIO
382	help
383	  Internal helper functions for S3C2416 based SDHCI systems
384
385config S3C2416_SETUP_SDHCI_GPIO
386	bool
387	help
388	  Common setup code for SDHCI gpio.
389
390comment "S3C2416 Boards"
391
392config MACH_SMDK2416
393	bool "SMDK2416"
394	select S3C2416_SETUP_SDHCI
395	select S3C24XX_SMDK
396	select S3C_DEV_FB
397	select S3C_DEV_HSMMC
398	select S3C_DEV_HSMMC1
399	select S3C_DEV_NAND
400	select S3C_DEV_USB_HOST
401	help
402	  Say Y here if you are using an SMDK2416
403
404config MACH_S3C2416_DT
405	bool "Samsung S3C2416 machine using devicetree"
406	select TIMER_OF
407	select USE_OF
408	select PINCTRL
409	select PINCTRL_S3C24XX
410	help
411	  Machine support for Samsung S3C2416 machines with device tree enabled.
412	  Select this if a fdt blob is available for the S3C2416 SoC based board.
413	  Note: This is under development and not all peripherals can be supported
414	  with this machine file.
415
416endif # CPU_S3C2416
417
418if CPU_S3C2440 || CPU_S3C2442
419
420config S3C2440_XTAL_12000000
421	bool
422	help
423	  Indicate that the build needs to support 12MHz system
424	  crystal.
425
426config S3C2440_XTAL_16934400
427	bool
428	help
429	  Indicate that the build needs to support 16.9344MHz system
430	  crystal.
431
432config S3C2440_PLL_12000000
433	bool
434	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_12000000
435	default y if S3C24XX_PLL
436	help
437	  PLL tables for S3C2440 or S3C2442 CPUs with 12MHz crystals.
438
439config S3C2440_PLL_16934400
440	bool
441	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_16934400
442	default y if S3C24XX_PLL
443	help
444	  PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals.
445endif # CPU_S3C2440 || CPU_S3C2442
446
447if CPU_S3C2440
448
449comment "S3C2440 Boards"
450
451#
452# The "S3C2440 Boards" list is ordered alphabetically by option text.
453# (without ARCH_ or MACH_)
454#
455
456config MACH_ANUBIS
457	bool "Simtec Electronics ANUBIS"
458	select HAVE_PATA_PLATFORM
459	select S3C2410_COMMON_DCLK
460	select S3C2440_XTAL_12000000
461	select S3C24XX_SIMTEC_PM if PM
462	select S3C_DEV_USB_HOST
463	help
464	  Say Y here if you are using the Simtec Electronics ANUBIS
465	  development system
466
467config MACH_AT2440EVB
468	bool "Avantech AT2440EVB development board"
469	select S3C_DEV_NAND
470	select S3C_DEV_USB_HOST
471	help
472	  Say Y here if you are using the AT2440EVB development board
473
474config MACH_MINI2440
475	bool "MINI2440 development board"
476	select LEDS_CLASS
477	select LEDS_TRIGGERS
478	select LEDS_TRIGGER_BACKLIGHT
479	select NEW_LEDS
480	select S3C_DEV_NAND
481	select S3C_DEV_USB_HOST
482	help
483	  Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
484	  available via various sources. It can come with a 3.5" or 7" touch LCD.
485
486config MACH_NEXCODER_2440
487	bool "NexVision NEXCODER 2440 Light Board"
488	select S3C2440_XTAL_12000000
489	select S3C_DEV_NAND
490	select S3C_DEV_USB_HOST
491	help
492	  Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board
493
494config MACH_OSIRIS
495	bool "Simtec IM2440D20 (OSIRIS) module"
496	select S3C2410_COMMON_DCLK
497	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
498	select S3C2440_XTAL_12000000
499	select S3C24XX_SIMTEC_PM if PM
500	select S3C_DEV_NAND
501	select S3C_DEV_USB_HOST
502	help
503	  Say Y here if you are using the Simtec IM2440D20 module, also
504	  known as the Osiris.
505
506config MACH_OSIRIS_DVS
507	tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver"
508	depends on MACH_OSIRIS
509	depends on TPS65010
510	help
511	  Say Y/M here if you want to have dynamic voltage scaling support
512	  on the Simtec IM2440D20 (OSIRIS) module via the TPS65011.
513
514	  The DVS driver alters the voltage supplied to the ARM core
515	  depending on the frequency it is running at. The driver itself
516	  does not do any of the frequency alteration, which is left up
517	  to the cpufreq driver.
518
519config MACH_RX3715
520	bool "HP iPAQ rx3715"
521	select PM_H1940 if PM
522	select S3C2440_XTAL_16934400
523	select S3C_DEV_NAND
524	help
525	  Say Y here if you are using the HP iPAQ rx3715.
526
527config ARCH_S3C2440
528	bool "SMDK2440"
529	select S3C2440_XTAL_16934400
530	select S3C24XX_SMDK
531	select S3C_DEV_NAND
532	select S3C_DEV_USB_HOST
533	help
534	  Say Y here if you are using the SMDK2440.
535
536config SMDK2440_CPU2440
537	bool "SMDK2440 with S3C2440 CPU module"
538	default y if ARCH_S3C2440
539	select S3C2440_XTAL_16934400
540
541endif # CPU_S3C2440
542
543if CPU_S3C2442
544
545comment "S3C2442 Boards"
546
547#
548# The "S3C2442 Boards" list is ordered alphabetically by option text.
549# (without ARCH_ or MACH_)
550#
551
552config MACH_NEO1973_GTA02
553	bool "Openmoko GTA02 / Freerunner phone"
554	select I2C
555	select MFD_PCF50633
556	select PCF50633_GPIO
557	select POWER_SUPPLY
558	select S3C_DEV_USB_HOST
559	help
560	  Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone
561
562config MACH_RX1950
563	bool "HP iPAQ rx1950"
564	select I2C
565	select PM_H1940 if PM
566	select S3C2410_COMMON_DCLK
567	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
568	select S3C2440_XTAL_16934400
569	select S3C_DEV_NAND
570	help
571	  Say Y here if you're using HP iPAQ rx1950
572
573endif # CPU_S3C2442
574
575if CPU_S3C2443 || CPU_S3C2416
576
577config S3C2443_SETUP_SPI
578	bool
579	help
580	  Common setup code for SPI GPIO configurations
581
582endif # CPU_S3C2443 || CPU_S3C2416
583
584if CPU_S3C2443
585
586comment "S3C2443 Boards"
587
588config MACH_SMDK2443
589	bool "SMDK2443"
590	select S3C24XX_SMDK
591	select S3C_DEV_HSMMC1
592	help
593	  Say Y here if you are using an SMDK2443
594
595endif # CPU_S3C2443
596
597config PM_H1940
598	bool
599	help
600	  Internal node for H1940 and related PM
601
602endmenu # "Samsung S3C24XX SoCs Support"
603
604endif # ARCH_S3C24XX
605