Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
[firefly-linux-kernel-4.4.55.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 S5P_DEV_USB_EHCI
386         bool
387         help
388           Compile in platform device definition for USB EHCI
389
390 config S3C24XX_PWM
391         bool "PWM device support"
392         select PWM
393         select PWM_SAMSUNG
394         help
395           Support for exporting the PWM timer blocks via the pwm device
396           system
397
398 config S5P_SETUP_MIPIPHY
399         bool
400         help
401           Compile in common setup code for MIPI-CSIS and MIPI-DSIM devices
402
403 config S3C_SETUP_CAMIF
404         bool
405         help
406           Compile in common setup code for S3C CAMIF devices
407
408 # DMA
409
410 config S3C_DMA
411         bool
412         help
413           Internal configuration for S3C DMA core
414
415 config S5P_IRQ_PM
416         bool
417         default y if S5P_PM
418         help
419           Legacy IRQ power management for S5P platforms
420
421 config SAMSUNG_PM_GPIO
422         bool
423         default y if GPIO_SAMSUNG && PM
424         help
425           Include legacy GPIO power management code for platforms not using
426           pinctrl-samsung driver.
427
428 endif
429
430 config SAMSUNG_DMADEV
431         bool
432         select ARM_AMBA
433         select DMADEVICES
434         select PL330_DMA if (ARCH_EXYNOS5 || ARCH_EXYNOS4 || CPU_S5PV210 || CPU_S5PC100 || \
435                                         CPU_S5P6450 || CPU_S5P6440)
436         help
437           Use DMA device engine for PL330 DMAC.
438
439 config S5P_DEV_MFC
440         bool
441         help
442           Compile in setup memory (init) code for MFC
443
444 comment "Power management"
445
446 config SAMSUNG_PM_DEBUG
447         bool "S3C2410 PM Suspend debug"
448         depends on PM
449         select DEBUG_LL
450         help
451           Say Y here if you want verbose debugging from the PM Suspend and
452           Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
453           for more information.
454
455 config S3C_PM_DEBUG_LED_SMDK
456        bool "SMDK LED suspend/resume debugging"
457        depends on PM && (MACH_SMDK6410)
458        help
459          Say Y here to enable the use of the SMDK LEDs on the baseboard
460          for debugging of the state of the suspend and resume process.
461
462          Note, this currently only works for S3C64XX based SMDK boards.
463
464 config SAMSUNG_PM_CHECK
465         bool "S3C2410 PM Suspend Memory CRC"
466         depends on PM && CRC32
467         help
468           Enable the PM code's memory area checksum over sleep. This option
469           will generate CRCs of all blocks of memory, and store them before
470           going to sleep. The blocks are then checked on resume for any
471           errors.
472
473           Note, this can take several seconds depending on memory size
474           and CPU speed.
475
476           See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
477
478 config SAMSUNG_PM_CHECK_CHUNKSIZE
479         int "S3C2410 PM Suspend CRC Chunksize (KiB)"
480         depends on PM && SAMSUNG_PM_CHECK
481         default 64
482         help
483           Set the chunksize in Kilobytes of the CRC for checking memory
484           corruption over suspend and resume. A smaller value will mean that
485           the CRC data block will take more memory, but wil identify any
486           faults with better precision.
487
488           See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
489
490 config SAMSUNG_WAKEMASK
491         bool
492         depends on PM
493         help
494           Compile support for wakeup-mask controls found on the S3C6400
495           and above. This code allows a set of interrupt to wakeup-mask
496           mappings. See <plat/wakeup-mask.h>
497
498 config SAMSUNG_WDT_RESET
499         bool
500         help
501           Compile support for system restart by triggering watchdog reset.
502           Used on SoCs that do not provide dedicated reset control.
503
504 config S5P_PM
505         bool
506         help
507           Common code for power management support on S5P and newer SoCs
508           Note: Do not select this for S5P6440 and S5P6450.
509
510 config S5P_SLEEP
511         bool
512         help
513           Internal config node to apply common S5P sleep management code.
514           Can be selected by S5P and newer SoCs with similar sleep procedure.
515
516 config DEBUG_S3C_UART
517         depends on PLAT_SAMSUNG
518         int
519         default "0" if DEBUG_S3C_UART0
520         default "1" if DEBUG_S3C_UART1
521         default "2" if DEBUG_S3C_UART2
522         default "3" if DEBUG_S3C_UART3
523
524 endif