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