rtc: tps80031: register as mfd sub device
[linux-2.6.git] / arch / arm / mach-tegra / Kconfig
1 # Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
2 #
3 # This program is free software; you can redistribute it and/or modify it
4 # under the terms and conditions of the GNU General Public License,
5 # version 2, as published by the Free Software Foundation.
6 #
7 # This program is distributed in the hope it will be useful, but WITHOUT
8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
10 # more details.
11 #
12 # You should have received a copy of the GNU General Public License
13 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
14
15 if ARCH_TEGRA
16
17 comment "NVIDIA Tegra options"
18
19 config ARCH_TEGRA_2x_SOC
20         bool "Tegra 2 family SOC"
21         default y
22         depends on !ARCH_TEGRA_3x_SOC
23         select ARCH_TEGRA_HAS_PCIE
24         select CPU_V7
25         select ARM_GIC
26         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
27         select ARCH_REQUIRE_GPIOLIB
28         select USB_ARCH_HAS_EHCI if USB_SUPPORT
29         select USB_ULPI if USB_SUPPORT
30         select USB_ULPI_VIEWPORT if USB_SUPPORT
31         select ARM_ERRATA_742230 if SMP
32         select USB_ARCH_HAS_EHCI if USB_SUPPORT
33         select USB_ULPI if USB_SUPPORT
34         select USB_ULPI_VIEWPORT if USB_SUPPORT
35         select ARCH_SUPPORTS_MSI if TEGRA_PCI
36         select PCI_MSI if TEGRA_PCI
37         select CPA
38         select ARM_ERRATA_716044
39         select ARM_ERRATA_764369 if SMP
40         select ARCH_HAS_SUSPEND_PAGETABLE
41         select NVMAP_CACHE_MAINT_BY_SET_WAYS
42         help
43           Support for NVIDIA Tegra AP20 and T20 processors, based on the
44           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
45
46 config ARCH_TEGRA_3x_SOC
47         bool "Tegra 3 family SOC"
48         select ARCH_TEGRA_HAS_PCIE
49         select ARCH_TEGRA_HAS_SATA
50         select ARCH_TEGRA_HAS_DUAL_3D
51         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
52         select CPU_V7
53         select ARM_GIC
54         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
55         select GIC_SET_MULTIPLE_CPUS if SMP
56         select ARCH_REQUIRE_GPIOLIB
57         select USB_ARCH_HAS_EHCI if USB_SUPPORT
58         select USB_EHCI_TEGRA if USB_SUPPORT
59         select USB_ULPI if USB_SUPPORT
60         select USB_ULPI_VIEWPORT if USB_SUPPORT
61         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
62         select ARCH_SUPPORTS_MSI if TEGRA_PCI
63         select PCI_MSI if TEGRA_PCI
64         select ARM_ERRATA_754322
65         select ARM_ERRATA_764369 if SMP
66         select TEGRA_LP2_ARM_TWD if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
67         select CPA
68         select ARCH_HAS_SUSPEND_PAGETABLE
69         select NVMAP_CACHE_MAINT_BY_SET_WAYS
70         help
71           Support for NVIDIA Tegra 3 family of SoCs, based upon the
72           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
73
74 config ARCH_TEGRA_HAS_DUAL_3D
75         bool
76
77 config ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
78         bool
79
80 config ARCH_TEGRA_HAS_PCIE
81         bool
82
83 config ARCH_TEGRA_HAS_SATA
84         bool
85
86 config TEGRA_PCI
87         bool "PCIe host controller driver"
88         select PCI
89         depends on ARCH_TEGRA_HAS_PCIE
90         help
91           Adds PCIe Host controller driver for tegra based systems
92
93 config TEGRA_IRDA
94         bool "IRDA on UARTB Port of Verbier"
95         select IRDA_CPLD
96         depends on ARCH_TEGRA_3x_SOC && MACH_CARDHU
97         help
98           Adds support for Vishay IrDA transceiver at UARTB port
99           of Verbier Boards(E1186 and E1198) with no ULPI rework done.
100
101 comment "Tegra board type"
102
103 config MACH_HARMONY
104        bool "Harmony board"
105        depends on ARCH_TEGRA_2x_SOC
106        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
107        help
108          Support for NVIDIA Harmony development platform
109
110 config MACH_VENTANA
111        bool "Ventana board"
112        depends on ARCH_TEGRA_2x_SOC
113        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
114        help
115          Support for NVIDIA Ventana development platform
116
117 config MACH_KAEN
118        bool "Kaen board"
119        depends on ARCH_TEGRA_2x_SOC
120        select MACH_SEABOARD
121        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
122        help
123          Support for the Kaen version of Seaboard
124
125 config MACH_PAZ00
126        bool "Paz00 board"
127        depends on ARCH_TEGRA_2x_SOC
128        help
129          Support for the Toshiba AC100/Dynabook AZ netbook
130
131 config MACH_SEABOARD
132        bool "Seaboard board"
133        depends on ARCH_TEGRA_2x_SOC
134        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
135        help
136          Support for nVidia Seaboard development platform. It will
137          also be included for some of the derivative boards that
138          have large similarities with the seaboard design.
139
140 config MACH_TEGRA_DT
141         bool "Generic Tegra board (FDT support)"
142         select USE_OF
143         help
144           Support for generic nVidia Tegra boards using Flattened Device Tree
145
146 config MACH_TRIMSLICE
147        bool "TrimSlice board"
148        depends on ARCH_TEGRA_2x_SOC
149        select TEGRA_PCI
150        help
151          Support for CompuLab TrimSlice platform
152
153 config MACH_WARIO
154        bool "Wario board"
155        depends on ARCH_TEGRA_2x_SOC
156        select MACH_SEABOARD
157        help
158          Support for the Wario version of Seaboard
159
160 config MACH_WHISTLER
161        bool "Whistler board"
162        depends on ARCH_TEGRA_2x_SOC
163        select MACH_HAS_SND_SOC_TEGRA_WM8753 if SND_SOC
164        select MACH_HAS_SND_SOC_TEGRA_TLV320AIC326X if SND_SOC
165        help
166          Support for NVIDIA Whistler development platform
167
168 config MACH_ARUBA
169        bool "Aruba board"
170        depends on ARCH_TEGRA_3x_SOC
171        select TEGRA_FPGA_PLATFORM
172        help
173          Support for NVIDIA Aruba2 FPGA development platform
174
175 config MACH_CARDHU
176        bool "Cardhu board"
177        depends on ARCH_TEGRA_3x_SOC
178        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
179        select MACH_HAS_SND_SOC_TEGRA_TLV320AIC326X if SND_SOC
180        select MACH_HAS_SND_SOC_TEGRA_MAX98095 if SND_SOC
181        help
182          Support for NVIDIA Cardhu development platform
183
184 config MACH_P1852
185        bool "P1852 board"
186        depends on ARCH_TEGRA_3x_SOC
187        help
188          Support for NVIDIA P1852 development platform
189
190 config MACH_TEGRA_ENTERPRISE
191        bool "Enterprise board"
192        depends on ARCH_TEGRA_3x_SOC
193        select MACH_HAS_SND_SOC_TEGRA_MAX98088 if SND_SOC
194        select MACH_HAS_SND_SOC_TEGRA_TLV320AIC326X if SND_SOC
195        select TEGRA_SLOW_CSITE
196        help
197          Support for NVIDIA Enterprise development platform
198
199 config MACH_KAI
200        bool "Kai board"
201        depends on ARCH_TEGRA_3x_SOC
202        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
203        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
204        help
205          Support for NVIDIA KAI development platform
206
207 choice
208        prompt "Tegra platform type"
209        default TEGRA_SILICON_PLATFORM
210
211 config TEGRA_SILICON_PLATFORM
212         bool "Silicon"
213         help
214           This enables support for a Tegra silicon platform.
215
216 config TEGRA_SIMULATION_PLATFORM
217         bool "Simulation"
218         help
219           This enables support for a Tegra simulation platform.
220           Select this only if you are an NVIDIA developer working
221           on a simulation platform.
222
223 config TEGRA_FPGA_PLATFORM
224         bool "FPGA"
225         help
226           This enables support for a Tegra FPGA platform.
227           Select this only if you are an NVIDIA developer working
228           on a FPGA platform.
229 endchoice
230
231 source "arch/arm/mach-tegra/p852/Kconfig"
232
233 choice
234         prompt "Low-level debug console UART"
235         default TEGRA_DEBUG_UART_NONE
236
237 config TEGRA_DEBUG_UART_NONE
238         bool "None"
239
240 config TEGRA_DEBUG_UARTA
241         bool "UART-A"
242         depends on DEBUG_LL
243
244 config TEGRA_DEBUG_UARTB
245         bool "UART-B"
246         depends on DEBUG_LL
247
248 config TEGRA_DEBUG_UARTC
249         bool "UART-C"
250         depends on DEBUG_LL
251
252 config TEGRA_DEBUG_UARTD
253         bool "UART-D"
254         depends on DEBUG_LL
255
256 config TEGRA_DEBUG_UARTE
257         bool "UART-E"
258         depends on DEBUG_LL
259 endchoice
260
261 config TEGRA_SYSTEM_DMA
262         bool "Enable system DMA driver for NVIDIA Tegra SoCs"
263         default y
264         help
265           Adds system DMA functionality for NVIDIA Tegra SoCs, used by
266           several Tegra device drivers
267
268 config TEGRA_PWM
269         tristate "Enable PWM driver"
270         select HAVE_PWM
271         help
272           Enable support for the Tegra PWM controller(s).
273
274 config TEGRA_FIQ_DEBUGGER
275         bool "Enable the FIQ serial debugger on Tegra"
276         default n
277         select FIQ_DEBUGGER
278         help
279           Enables the FIQ serial debugger on Tegra
280
281 config TEGRA_P1852_TDM
282         bool "Enable TDM mode for P1852 SKUs"
283         default n
284         depends on MACH_P1852
285         help
286                 Enables TDM mode driver for P1852 SKUs. If this
287                 is not defined then I2S mode is selected by default.
288
289 config TEGRA_CARDHU_DSI
290         bool "Support DSI panel on Cardhu"
291         depends on MACH_CARDHU
292         select TEGRA_DSI
293         help
294                 Support for DSI Panel on Nvidia Cardhu
295
296 config TEGRA_CARDHU_DUAL_DSI_PANEL
297         bool "Support Dual DSI panel on Cardhu"
298         default n
299         depends on TEGRA_CARDHU_DSI
300         help
301                 Support for Dual DSI Panel on Nvidia Cardhu
302
303 config TEGRA_EMC_SCALING_ENABLE
304         bool "Enable scaling the memory frequency"
305         depends on TEGRA_SILICON_PLATFORM
306         default n
307
308 config TEGRA_CPU_DVFS
309         bool "Enable voltage scaling on Tegra CPU"
310         depends on TEGRA_SILICON_PLATFORM
311         default y
312
313 config TEGRA_CORE_DVFS
314         bool "Enable voltage scaling on Tegra core"
315         depends on TEGRA_SILICON_PLATFORM
316         depends on TEGRA_CPU_DVFS
317         default y
318
319 config TEGRA_IOVMM_GART
320         bool "Enable I/O virtual memory manager for GART"
321         depends on ARCH_TEGRA_2x_SOC && !TEGRA_IOMMU_GART
322         default y
323         select TEGRA_IOVMM
324         help
325           Enables support for remapping discontiguous physical memory
326           shared with the operating system into contiguous I/O virtual
327           space through the GART (Graphics Address Relocation Table)
328           hardware included on Tegra SoCs.
329
330 config TEGRA_IOVMM_SMMU
331         bool "Enable I/O virtual memory manager for SMMU"
332         depends on ARCH_TEGRA_3x_SOC && !TEGRA_IOMMU_SMMU
333         default y
334         select TEGRA_IOVMM
335         help
336           Enables support for remapping discontiguous physical memory
337           shared with the operating system into contiguous I/O virtual
338           space through the SMMU (System Memory Management Unit)
339           hardware included on Tegra SoCs.
340
341 config TEGRA_IOVMM_SMMU_SYSFS
342         bool "Enable SMMU register access for debugging"
343         depends on TEGRA_IOVMM_SMMU
344         default n
345         help
346           Enables SMMU register access through /sys/devices/smmu/* files.
347
348 config TEGRA_IOVMM
349         depends on TEGRA_IOVMM_GART || TEGRA_IOVMM_SMMU
350         bool
351
352 config TEGRA_AVP_KERNEL_ON_MMU
353         bool "Use AVP MMU to relocate AVP kernel"
354         depends on ARCH_TEGRA_2x_SOC
355         default y
356         help
357           Use AVP MMU to relocate AVP kernel (nvrm_avp.bin).
358
359 config TEGRA_AVP_KERNEL_ON_SMMU
360         bool "Use SMMU to relocate AVP kernel"
361         depends on TEGRA_IOVMM_SMMU || TEGRA_IOMMU_SMMU
362         default y
363         help
364           Use SMMU to relocate AVP kernel (nvrm_avp.bin).
365
366 config TEGRA_ARB_SEMAPHORE
367         bool
368
369 config TEGRA_THERMAL_THROTTLE
370         bool "Enable throttling of CPU speed on overtemp"
371         depends on TEGRA_SILICON_PLATFORM
372         depends on CPU_FREQ
373         depends on THERMAL
374         default y
375         help
376           Also requires enabling a temperature sensor such as NCT1008.
377
378 config WIFI_CONTROL_FUNC
379         bool "Enable WiFi control function abstraction"
380         help
381           Enables Power/Reset/Carddetect function abstraction
382
383 config TEGRA_CLOCK_DEBUG_WRITE
384         bool "Enable debugfs write access to clock tree"
385         depends on DEBUG_FS
386         default n
387
388 config TEGRA_CLUSTER_CONTROL
389         bool
390         depends on ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
391         default y if PM_SLEEP
392
393 config TEGRA_AUTO_HOTPLUG
394         bool "Enable automatic CPU hot-plugging"
395         depends on HOTPLUG_CPU && CPU_FREQ && !ARCH_CPU_PROBE_RELEASE && !ARCH_TEGRA_2x_SOC
396         default y
397         help
398           This option enables turning CPUs off/on and switching tegra
399           high/low power CPU clusters automatically, corresponding to
400           CPU frequency scaling.
401
402 config TEGRA_MC_EARLY_ACK
403         bool "Enable early acknowledgement from mermory controller"
404         depends on ARCH_TEGRA_3x_SOC
405         default y
406         help
407           This option enables early acknowledgement from memory
408           controller. This feature is used to improve CPU memory
409           write performance.
410
411 config TEGRA_MC_PROFILE
412         tristate "Enable profiling memory controller utilization"
413         default y
414         help
415           When enabled, provides a mechanism to perform statistical
416           sampling of the memory controller usage on a client-by-client
417           basis, and report the log through sysfs.
418
419 config TEGRA_EDP_LIMITS
420         bool "Enforce electrical design limits"
421         depends on TEGRA_SILICON_PLATFORM
422         depends on CPU_FREQ
423         default y if ARCH_TEGRA_3x_SOC
424         default n
425         help
426           Limit maximum CPU frequency based on temperature and number
427           of on-line CPUs to keep CPU rail current within power supply
428           capabilities.
429
430 config TEGRA_EMC_TO_DDR_CLOCK
431         int "EMC to DDR clocks ratio"
432         default "2" if ARCH_TEGRA_2x_SOC
433         default "1"
434
435 config TEGRA_SE_ON_CBUS
436         bool "To Drive SE clock from cbus"
437         default y
438         help
439           This option enables SE clock to be derived from cbus
440
441 config TEGRA_CBUS_CLOCK_DIVIDER
442         int "CBUS clock divider"
443         default "2"
444
445 config TEGRA_CONVSERVATIVE_GOV_ON_EARLYSUPSEND
446         bool "Use conservative cpu frequency governor when device enters early suspend"
447         depends on HAS_EARLYSUSPEND && CPU_FREQ
448         default n
449         help
450          Also will restore to original cpu frequency governor when device is resumed
451
452 config TEGRA_STAT_MON
453         bool "Enable H/W statistics monitor"
454         depends on ARCH_TEGRA_2x_SOC
455         default n
456         help
457           Enables support for hardware statistics monitor for AVP.
458
459 config USB_HOTPLUG
460         bool "Enabling the USB hotplug"
461         default n
462
463 config TEGRA_GADGET_BOOST_CPU_FREQ
464         int "Boost cpu frequency for tegra usb gadget (0-1300 mhz)"
465         range 0 1300
466         default 0
467         help
468           Devices need to boost frequency of CPU when they are connected
469           to host pc through usb cable for better performance. This value
470           is the amount of the frequency (in mhz) to be boosted. If it is
471           zero boosting frequency will not be enabled. This value will be
472           used only by usb gadget driver.
473
474 config TEGRA_DYNAMIC_PWRDET
475         bool "Enable dynamic activation of IO level auto-detection"
476         depends on TEGRA_SILICON_PLATFORM
477         default n
478         help
479           This option allows turning off tegra IO level auto-detection
480           when IO power is stable. If set auto-detection cells are active
481           only during power transitions, otherwise, the cells are active
482           always
483
484 config TEGRA_EDP_EXACT_FREQ
485         bool "Use maximum possible cpu frequency when EDP capping"
486         depends on TEGRA_EDP_LIMITS
487         default y
488         help
489           When enabled the cpu will run at the exact frequency
490           specified in the EDP table when EDP capping is applied; when
491           disabled the next lower cpufreq frequency will be used.
492
493 config TEGRA_USB_MODEM_POWER
494         bool "Enable tegra usb modem power management"
495         default n
496         help
497           This option enables support for out-of_band remote wakeup, selective
498           suspend and system suspend/resume.
499
500 config TEGRA_BB_XMM_POWER
501         bool "Enable power driver for XMM modem"
502         default n
503         help
504           Enables power driver which controls gpio signals to XMM modem.
505
506 config TEGRA_BB_XMM_POWER2
507         tristate "Enable power driver for XMM modem (flashless)"
508         default n
509         help
510           Enables power driver which controls gpio signals to XMM modem
511           (in flashless configuration).  User-mode application must
512           insert this LKM to initiate 2nd USB enumeration power sequence
513           - after modem software has been downloaded to flashless device.
514
515 config TEGRA_PLLM_RESTRICTED
516         bool "Restrict PLLM usage as module clock source"
517         depends on !ARCH_TEGRA_2x_SOC
518         default n
519         help
520           When enabled, PLLM usage may be restricted to modules with dividers
521           capable of dividing maximum PLLM frequency at minimum voltage. When
522           disabled, PLLM is used as a clock source with no restrictions (which
523           may effectively increase lower limit for core voltage).
524
525 config TEGRA_WDT_RECOVERY
526         bool "Enable suspend/resume watchdog recovery mechanism"
527         default n
528         help
529           Enables watchdog recovery mechanism to protect against
530           suspend/resume hangs.
531
532 config TEGRA_LP2_ARM_TWD
533         bool
534
535 config TEGRA_RAIL_OFF_MULTIPLE_CPUS
536         bool
537
538 config TEGRA_SLOW_CSITE
539         bool "lower csite clock to 1 Mhz to reduce its power consumption"
540         default n
541         help
542           When enabled, csite will be running at 1 Mhz and the performance of
543           jtag, lauterbach and other debugger will be extremely slow.
544
545 config TEGRA_PREINIT_CLOCKS
546         bool "Preinitialize Tegra clocks to known states"
547         default n
548         help
549           Preinitialize Tegra clocks to known states before actual full-
550           scale clock initialization starts.
551
552 config TEGRA_PREPOWER_WIFI
553         bool "Pre-power up WiFi "
554         default n
555         help
556           Pre-power up the on board WiFi chip
557
558 config TEGRA_SKIN_THROTTLE
559         bool "Skin Temperature throttling"
560         depends on TEGRA_THERMAL_THROTTLE
561         depends on THERM_EST
562         default n
563         help
564           Enable throttling to control the temperature of the skin/case
565           of the device.
566 endif