Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / arch / arm / plat-samsung / Kconfig
1 # arch/arm/plat-samsung/Kconfig
2 #
3 # Copyright 2009 Simtec Electronics
4 #
5 # Licensed under GPLv2
6
7 config PLAT_SAMSUNG
8         bool
9         depends on PLAT_S3C24XX || ARCH_S3C64XX || PLAT_S5P || ARCH_EXYNOS
10         default y
11         select GENERIC_IRQ_CHIP
12         select NO_IOPORT
13         help
14           Base platform code for all Samsung SoC based systems
15
16 config PLAT_S5P
17         bool
18         depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
19         default y
20         select ARCH_REQUIRE_GPIOLIB
21         select ARM_VIC
22         select NO_IOPORT
23         select PLAT_SAMSUNG
24         select S3C_GPIO_TRACK
25         select S5P_GPIO_DRVSTR
26         select SAMSUNG_CLKSRC if !COMMON_CLK
27         select SAMSUNG_GPIOLIB_4BIT
28         help
29           Base platform code for Samsung's S5P series SoC.
30
31 config SAMSUNG_PM
32         bool
33         depends on PM && (PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5P64X0 || S5P_PM)
34         default y
35         help
36           Base platform power management code for samsung code
37
38 if PLAT_SAMSUNG
39
40 # boot configurations
41
42 comment "Boot options"
43
44 config S3C_BOOT_ERROR_RESET
45         bool "S3C Reboot on decompression error"
46         help
47           Say y here to use the watchdog to reset the system if the
48           kernel decompressor detects an error during decompression.
49
50 config S3C_BOOT_UART_FORCE_FIFO
51        bool "Force UART FIFO on during boot process"
52        default y
53        help
54          Say Y here to force the UART FIFOs on during the kernel
55          uncompressor
56
57
58 config S3C_LOWLEVEL_UART_PORT
59         int "S3C UART to use for low-level messages"
60         default 0
61         help
62           Choice of which UART port to use for the low-level messages,
63           such as the `Uncompressing...` at start time. The value of
64           this configuration should be between zero and two. The port
65           must have been initialised by the boot-loader before use.
66
67 config SAMSUNG_ATAGS
68         def_bool n
69         depends on !ARCH_MULTIPLATFORM
70         depends on ATAGS
71         help
72            This option enables ATAGS based boot support code for
73            Samsung platforms, including static platform devices, legacy
74            clock, timer and interrupt initialization, etc.
75
76            Platforms that support only DT based boot need not to select
77            this option.
78
79 if SAMSUNG_ATAGS
80
81 # clock options
82
83 config SAMSUNG_CLOCK
84         bool
85         default y if !COMMON_CLK
86
87 config SAMSUNG_CLKSRC
88         bool
89         help
90           Select the clock code for the clksrc implementation
91           used by newer systems such as the S3C64XX.
92
93 config S5P_CLOCK
94         def_bool (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
95         help
96           Support common clock part for ARCH_S5P and ARCH_EXYNOS SoCs
97
98 # options for IRQ support
99
100 config S5P_IRQ
101         def_bool (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
102         help
103           Support common interrupt part for ARCH_S5P SoCs
104
105 config S5P_EXT_INT
106         bool
107         help
108           Use the external interrupts (other than GPIO interrupts.)
109           Note: Do not choose this for S5P6440 and S5P6450.
110
111 config S5P_GPIO_INT
112         bool
113         help
114           Common code for the GPIO interrupts (other than external interrupts.)
115
116 # options for gpio configuration support
117
118 config SAMSUNG_GPIOLIB_4BIT
119         bool
120         help
121           GPIOlib file contains the 4 bit modification functions for gpio
122           configuration. GPIOlib shall be compiled only for S3C64XX and S5P
123           series of processors.
124
125 config S5P_GPIO_DRVSTR
126         bool
127         help
128           Internal configuration to get and set correct GPIO driver strength
129           helper
130
131 config SAMSUNG_GPIO_EXTRA
132         int "Number of additional GPIO pins"
133         default 128 if SAMSUNG_GPIO_EXTRA128
134         default 64 if SAMSUNG_GPIO_EXTRA64
135         default 0
136         help
137           Use additional GPIO space in addition to the GPIO's the SOC
138           provides. This allows expanding the GPIO space for use with
139           GPIO expanders.
140
141 config SAMSUNG_GPIO_EXTRA64
142         bool
143
144 config SAMSUNG_GPIO_EXTRA128
145         bool
146
147 config S3C_GPIO_SPACE
148         int "Space between gpio banks"
149         default 0
150         help
151           Add a number of spare GPIO entries between each bank for debugging
152           purposes. This allows any problems where an counter overflows from
153           one bank to another to be caught, at the expense of using a little
154           more memory.
155
156 config S3C_GPIO_TRACK
157         bool
158         help
159           Internal configuration option to enable the s3c specific gpio
160           chip tracking if the platform requires it.
161
162 # uart options
163
164 config S5P_DEV_UART
165         def_bool y
166         depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
167
168 # ADC driver
169
170 config S3C_ADC
171         bool "ADC common driver support"
172         help
173           Core support for the ADC block found in the Samsung SoC systems
174           for drivers such as the touchscreen and hwmon to use to share
175           this resource.
176
177 # device definitions to compile in
178
179 config S3C_DEV_HSMMC
180         bool
181         help
182           Compile in platform device definitions for HSMMC code
183
184 config S3C_DEV_HSMMC1
185         bool
186         help
187           Compile in platform device definitions for HSMMC channel 1
188
189 config S3C_DEV_HSMMC2
190         bool
191         help
192           Compile in platform device definitions for HSMMC channel 2
193
194 config S3C_DEV_HSMMC3
195         bool
196         help
197           Compile in platform device definitions for HSMMC channel 3
198
199 config S3C_DEV_HWMON
200         bool
201         help
202             Compile in platform device definitions for HWMON
203
204 config S3C_DEV_I2C1
205         bool
206         help
207           Compile in platform device definitions for I2C channel 1
208
209 config S3C_DEV_I2C2
210         bool
211         help
212           Compile in platform device definitions for I2C channel 2
213
214 config S3C_DEV_I2C3
215         bool
216         help
217           Compile in platform device definition for I2C controller 3
218
219 config S3C_DEV_I2C4
220         bool
221         help
222           Compile in platform device definition for I2C controller 4
223
224 config S3C_DEV_I2C5
225         bool
226         help
227           Compile in platform device definition for I2C controller 5
228
229 config S3C_DEV_I2C6
230         bool
231         help
232           Compile in platform device definition for I2C controller 6
233
234 config S3C_DEV_I2C7
235         bool
236         help
237           Compile in platform device definition for I2C controller 7
238
239 config S3C_DEV_FB
240         bool
241         help
242           Compile in platform device definition for framebuffer
243
244 config S3C_DEV_USB_HOST
245         bool
246         help
247           Compile in platform device definition for USB host.
248
249 config S3C_DEV_USB_HSOTG
250         bool
251         help
252           Compile in platform device definition for USB high-speed OtG
253
254 config S3C_DEV_WDT
255         bool
256         default y if ARCH_S3C24XX
257         help
258           Complie in platform device definition for Watchdog Timer
259
260 config S3C_DEV_NAND
261         bool
262         help
263           Compile in platform device definition for NAND controller
264
265 config S3C_DEV_ONENAND
266         bool
267         help
268           Compile in platform device definition for OneNAND controller
269
270 config S3C_DEV_RTC
271         bool
272         help
273           Complie in platform device definition for RTC
274
275 config SAMSUNG_DEV_ADC
276         bool
277         help
278           Compile in platform device definition for ADC controller
279
280 config SAMSUNG_DEV_IDE
281         bool
282         help
283           Compile in platform device definitions for IDE
284
285 config S3C64XX_DEV_SPI0
286         bool
287         help
288           Compile in platform device definitions for S3C64XX's type
289           SPI controller 0
290
291 config S3C64XX_DEV_SPI1
292         bool
293         help
294           Compile in platform device definitions for S3C64XX's type
295           SPI controller 1
296
297 config S3C64XX_DEV_SPI2
298         bool
299         help
300           Compile in platform device definitions for S3C64XX's type
301           SPI controller 2
302
303 config SAMSUNG_DEV_TS
304         bool
305         help
306             Common in platform device definitions for touchscreen device
307
308 config SAMSUNG_DEV_KEYPAD
309         bool
310         help
311           Compile in platform device definitions for keypad
312
313 config SAMSUNG_DEV_PWM
314         bool
315         default y if ARCH_S3C24XX
316         help
317           Compile in platform device definition for PWM Timer
318
319 config SAMSUNG_DEV_BACKLIGHT
320         bool
321         depends on SAMSUNG_DEV_PWM
322         help
323           Compile in platform device definition LCD backlight with PWM Timer
324
325 config S5P_DEV_CSIS0
326         bool
327         help
328           Compile in platform device definitions for MIPI-CSIS channel 0
329
330 config S5P_DEV_CSIS1
331         bool
332         help
333           Compile in platform device definitions for MIPI-CSIS channel 1
334
335 config S5P_DEV_FIMC0
336         bool
337         help
338           Compile in platform device definitions for FIMC controller 0
339
340 config S5P_DEV_FIMC1
341         bool
342         help
343           Compile in platform device definitions for FIMC controller 1
344
345 config S5P_DEV_FIMC2
346         bool
347         help
348           Compile in platform device definitions for FIMC controller 2
349
350 config S5P_DEV_FIMC3
351         bool
352         help
353           Compile in platform device definitions for FIMC controller 3
354
355 config S5P_DEV_FIMD0
356         bool
357         help
358           Compile in platform device definitions for FIMD controller 0
359
360 config S5P_DEV_G2D
361         bool
362         help
363           Compile in platform device definitions for G2D device
364
365 config S5P_DEV_I2C_HDMIPHY
366         bool
367         help
368           Compile in platform device definitions for I2C HDMIPHY controller
369
370 config S5P_DEV_JPEG
371         bool
372         help
373           Compile in platform device definitions for JPEG codec
374
375 config S5P_DEV_ONENAND
376         bool
377         help
378           Compile in platform device definition for OneNAND controller
379
380 config S5P_DEV_TV
381         bool
382         help
383           Compile in platform device definition for TV interface
384
385 config S3C24XX_PWM
386         bool "PWM device support"
387         select PWM
388         select PWM_SAMSUNG
389         help
390           Support for exporting the PWM timer blocks via the pwm device
391           system
392
393 config S3C_SETUP_CAMIF
394         bool
395         help
396           Compile in common setup code for S3C CAMIF devices
397
398 # DMA
399
400 config S3C_DMA
401         bool
402         help
403           Internal configuration for S3C DMA core
404
405 config S5P_IRQ_PM
406         bool
407         default y if S5P_PM
408         help
409           Legacy IRQ power management for S5P platforms
410
411 config SAMSUNG_PM_GPIO
412         bool
413         default y if GPIO_SAMSUNG && PM
414         help
415           Include legacy GPIO power management code for platforms not using
416           pinctrl-samsung driver.
417
418 endif
419
420 config SAMSUNG_DMADEV
421         bool
422         select ARM_AMBA
423         select DMADEVICES
424         select PL330_DMA if (ARCH_EXYNOS5 || ARCH_EXYNOS4 || CPU_S5PV210 || CPU_S5PC100 || \
425                                         CPU_S5P6450 || CPU_S5P6440)
426         help
427           Use DMA device engine for PL330 DMAC.
428
429 config S5P_DEV_MFC
430         bool
431         help
432           Compile in setup memory (init) code for MFC
433
434 comment "Power management"
435
436 config SAMSUNG_PM_DEBUG
437         bool "S3C2410 PM Suspend debug"
438         depends on PM
439         select DEBUG_LL
440         help
441           Say Y here if you want verbose debugging from the PM Suspend and
442           Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
443           for more information.
444
445 config S3C_PM_DEBUG_LED_SMDK
446        bool "SMDK LED suspend/resume debugging"
447        depends on PM && (MACH_SMDK6410)
448        help
449          Say Y here to enable the use of the SMDK LEDs on the baseboard
450          for debugging of the state of the suspend and resume process.
451
452          Note, this currently only works for S3C64XX based SMDK boards.
453
454 config SAMSUNG_PM_CHECK
455         bool "S3C2410 PM Suspend Memory CRC"
456         depends on PM && CRC32
457         help
458           Enable the PM code's memory area checksum over sleep. This option
459           will generate CRCs of all blocks of memory, and store them before
460           going to sleep. The blocks are then checked on resume for any
461           errors.
462
463           Note, this can take several seconds depending on memory size
464           and CPU speed.
465
466           See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
467
468 config SAMSUNG_PM_CHECK_CHUNKSIZE
469         int "S3C2410 PM Suspend CRC Chunksize (KiB)"
470         depends on PM && SAMSUNG_PM_CHECK
471         default 64
472         help
473           Set the chunksize in Kilobytes of the CRC for checking memory
474           corruption over suspend and resume. A smaller value will mean that
475           the CRC data block will take more memory, but wil identify any
476           faults with better precision.
477
478           See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
479
480 config SAMSUNG_WAKEMASK
481         bool
482         depends on PM
483         help
484           Compile support for wakeup-mask controls found on the S3C6400
485           and above. This code allows a set of interrupt to wakeup-mask
486           mappings. See <plat/wakeup-mask.h>
487
488 config SAMSUNG_WDT_RESET
489         bool
490         help
491           Compile support for system restart by triggering watchdog reset.
492           Used on SoCs that do not provide dedicated reset control.
493
494 config S5P_PM
495         bool
496         help
497           Common code for power management support on S5P and newer SoCs
498           Note: Do not select this for S5P6440 and S5P6450.
499
500 config S5P_SLEEP
501         bool
502         help
503           Internal config node to apply common S5P sleep management code.
504           Can be selected by S5P and newer SoCs with similar sleep procedure.
505
506 config DEBUG_S3C_UART
507         depends on PLAT_SAMSUNG
508         int
509         default "0" if DEBUG_S3C_UART0
510         default "1" if DEBUG_S3C_UART1
511         default "2" if DEBUG_S3C_UART2
512         default "3" if DEBUG_S3C_UART3
513
514 endif