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