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