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