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