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