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