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