Arm: Tegra: Roth: Support Roth platform
[linux-3.10.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 "Enable support for Tegra20 family"
21         depends on !ARCH_TEGRA_3x_SOC
22         depends on !ARCH_TEGRA_11x_SOC
23         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
24         select ARCH_SUPPORTS_MSI if TEGRA_PCI
25         select ARCH_TEGRA_HAS_ARM_SCU
26         select ARCH_TEGRA_HAS_PCIE
27         select ARM_CPU_SUSPEND if PM
28         select ARM_ERRATA_716044
29         select ARM_ERRATA_720789
30         select ARM_ERRATA_742230 if SMP
31         select ARM_ERRATA_751472
32         select ARM_ERRATA_754327 if SMP
33         select ARM_ERRATA_764369 if SMP
34         select ARM_GIC
35         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
36         select COMMON_CLK
37         select CPA
38         select CPU_FREQ_TABLE if CPU_FREQ
39         select CPU_V7
40         select NVMAP_CACHE_MAINT_BY_SET_WAYS
41         select NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
42         select PCI_MSI if TEGRA_PCI
43         select PINCTRL
44         select PINCTRL_TEGRA20
45         select PL310_ERRATA_769419 if CACHE_L2X0
46         select SOC_BUS
47         select USB_ARCH_HAS_EHCI if USB_SUPPORT
48         select USB_ULPI if USB_PHY
49         select USB_ULPI_VIEWPORT if USB_PHY
50         help
51           Support for NVIDIA Tegra AP20 and T20 processors, based on the
52           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
53
54 config ARCH_TEGRA_3x_SOC
55         bool "Enable support for Tegra30 family"
56         depends on !ARCH_TEGRA_11x_SOC
57         select ARCH_SUPPORTS_MSI if TEGRA_PCI
58         select ARCH_TEGRA_HAS_ARM_SCU
59         select ARCH_TEGRA_HAS_PCIE
60         select ARCH_TEGRA_HAS_SATA
61         select ARCH_TEGRA_HAS_DUAL_3D
62         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
63         select ARM_CPU_SUSPEND if PM
64         select ARM_ERRATA_743622
65         select ARM_ERRATA_751472
66         select ARM_ERRATA_754322
67         select ARM_ERRATA_764369 if SMP
68         select ARM_GIC
69         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
70         select COMMON_CLK
71         select CPA
72         select CPU_FREQ_TABLE if CPU_FREQ
73         select CPU_V7
74         select GIC_SET_MULTIPLE_CPUS if SMP
75         select NVMAP_CACHE_MAINT_BY_SET_WAYS
76         select NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
77         select PCI_MSI if TEGRA_PCI
78         select PINCTRL
79         select PINCTRL_TEGRA30
80         select PL310_ERRATA_727915
81         select PL310_ERRATA_769419 if CACHE_L2X0
82         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
83         select SOC_BUS
84         select TEGRA_LATENCY_ALLOWANCE if !TEGRA_FPGA_PLATFORM
85         select TEGRA_LATENCY_ALLOWANCE_SCALING if !TEGRA_FPGA_PLATFORM
86         select TEGRA_LP2_CPU_TIMER if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
87         select USB_ARCH_HAS_EHCI if USB_SUPPORT
88         select USB_ULPI if USB_PHY
89         select USB_ULPI_VIEWPORT if USB_PHY
90         help
91           Support for NVIDIA Tegra T30 processor family, based on the
92           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
93
94 config ARCH_TEGRA_11x_SOC
95         bool "Tegra 11x family SOC"
96         select ARCH_REQUIRE_GPIOLIB
97         select ARCH_TEGRA_4GB_MEMORY
98         select ARCH_TEGRA_HAS_CL_DVFS
99         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
100         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
101         select ARM_ARCH_TIMER
102         select ARM_CPU_SUSPEND if PM
103         select ARM_GIC
104         select ARM_L1_CACHE_SHIFT_6
105         select CPA
106         select CPU_V7
107         select EDP_FRAMEWORK
108         select NVMAP_CACHE_MAINT_BY_SET_WAYS
109         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
110         select SOC_BUS
111         select TEGRA_DUAL_CBUS
112         select TEGRA_DYNAMIC_CBUS
113         select TEGRA_ERRATA_1157520
114         select TEGRA_ISOMGR
115         select TEGRA_ISOMGR_SYSFS
116         select TEGRA_ISOMGR_DEBUG
117         select TEGRA_LATENCY_ALLOWANCE if !TEGRA_FPGA_PLATFORM
118         select TEGRA_LP2_CPU_TIMER if !TEGRA_RAIL_OFF_MULTIPLE_CPUS
119         select TEGRA_MC_PTSA if !TEGRA_FPGA_PLATFORM
120         select USB_ARCH_HAS_EHCI if USB_SUPPORT
121         select USB_EHCI_TEGRA if USB_SUPPORT
122         select USB_ULPI if USB_SUPPORT
123         select USB_ULPI_VIEWPORT if USB_SUPPORT
124         help
125           Support for NVIDIA Tegra 11x family of SoCs, based upon the
126           ARM Cortex-A15MP CPU
127
128 config ARCH_TEGRA_HAS_ARM_SCU
129         bool
130
131 config ARCH_TEGRA_HAS_DUAL_3D
132         bool
133
134 config ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
135         bool
136
137 config ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
138         bool
139
140 config ARCH_TEGRA_HAS_PCIE
141         bool
142
143 config ARCH_TEGRA_HAS_SATA
144         bool
145
146 config ARCH_TEGRA_HAS_CL_DVFS
147         bool
148
149 config TEGRA_PCI
150         bool "PCIe host controller driver"
151         select PCI
152         depends on ARCH_TEGRA_HAS_PCIE
153         help
154           Adds PCIe Host controller driver for tegra based systems
155
156 config TEGRA_AHB
157         bool "Enable AHB driver for NVIDIA Tegra SoCs"
158         default y
159         help
160           Adds AHB configuration functionality for NVIDIA Tegra SoCs,
161           which controls AHB bus master arbitration and some
162           performance parameters(priority, prefech size).
163
164 comment "Tegra board type"
165
166 config MACH_CURACAO
167        bool "Curacao board"
168        depends on ARCH_TEGRA_11x_SOC
169        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
170        select TEGRA_FPGA_PLATFORM
171        help
172          Support for NVIDIA Curacao FPGA development platform
173
174
175 config MACH_DALMORE
176        bool "Dalmore board"
177        depends on ARCH_TEGRA_11x_SOC
178        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
179        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
180        help
181          Support for NVIDIA DALMORE development platform
182
183 config MACH_TEGRA_PLUTO
184        bool "Pluto board"
185        depends on ARCH_TEGRA_11x_SOC
186        select MACH_HAS_SND_SOC_TEGRA_CS42L73 if SND_SOC
187        help
188          Support for NVIDIA PLUTO development platform
189
190 config MACH_ROTH
191        bool "Thor board"
192        depends on ARCH_TEGRA_11x_SOC
193        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
194        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
195        help
196          Support for NVIDIA THOR development platform
197
198 choice
199        prompt "Tegra platform type"
200        default TEGRA_SILICON_PLATFORM
201
202 config TEGRA_SILICON_PLATFORM
203         bool "Silicon"
204         help
205           This enables support for a Tegra silicon platform.
206
207 config TEGRA_SIMULATION_PLATFORM
208         bool "Simulation"
209         help
210           This enables support for a Tegra simulation platform.
211           Select this only if you are an NVIDIA developer working
212           on a simulation platform.
213
214 config TEGRA_FPGA_PLATFORM
215         bool "FPGA"
216         help
217           This enables support for a Tegra FPGA platform.
218           Select this only if you are an NVIDIA developer working
219           on a FPGA platform.
220 endchoice
221
222 config TEGRA_FIQ_DEBUGGER
223         bool "Enable the FIQ serial debugger on Tegra"
224         default n
225         select FIQ_DEBUGGER
226         help
227           Enables the FIQ serial debugger on Tegra
228
229 config TEGRA_EMC_SCALING_ENABLE
230         bool "Enable scaling the memory frequency"
231         depends on TEGRA_SILICON_PLATFORM
232         default n
233
234 config TEGRA_CPU_DVFS
235         bool "Enable voltage scaling on Tegra CPU"
236         depends on TEGRA_SILICON_PLATFORM
237         default y
238
239 config TEGRA_CORE_DVFS
240         bool "Enable voltage scaling on Tegra core"
241         depends on TEGRA_SILICON_PLATFORM
242         depends on TEGRA_CPU_DVFS
243         default y
244
245 config TEGRA_AVP_KERNEL_ON_MMU
246         bool "Use AVP MMU to relocate AVP kernel"
247         depends on ARCH_TEGRA_2x_SOC
248         default y
249         help
250           Use AVP MMU to relocate AVP kernel (nvrm_avp.bin).
251
252 config TEGRA_AVP_KERNEL_ON_SMMU
253         bool "Use SMMU to relocate AVP kernel"
254         depends on TEGRA_IOVMM_SMMU
255         default y
256         help
257           Use SMMU to relocate AVP kernel (nvrm_avp.bin).
258
259 config TEGRA_ARB_SEMAPHORE
260         bool
261
262 config TEGRA_THERMAL_THROTTLE
263         bool "Enable throttling of CPU speed on overtemp"
264         depends on TEGRA_SILICON_PLATFORM
265         depends on CPU_FREQ
266         depends on THERMAL
267         default y
268         help
269           Also requires enabling a temperature sensor such as NCT1008.
270
271 config TEGRA_CLOCK_DEBUG_WRITE
272         bool "Enable debugfs write access to clock tree"
273         depends on DEBUG_FS
274         default n
275
276 config TEGRA_CLUSTER_CONTROL
277         bool
278         depends on ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
279         default y if PM_SLEEP
280
281 config TEGRA_CPUQUIET
282         bool
283
284 config TEGRA_AUTO_HOTPLUG
285         bool "Enable automatic CPU hot-plugging"
286         depends on HOTPLUG_CPU && CPU_FREQ && !ARCH_CPU_PROBE_RELEASE && !ARCH_TEGRA_2x_SOC
287         select TEGRA_CPUQUIET
288         default y
289         help
290           This option enables turning CPUs off/on and switching tegra
291           high/low power CPU clusters automatically, corresponding to
292           CPU frequency scaling.
293
294 config TEGRA_MC_EARLY_ACK
295         bool "Enable early acknowledgement from mermory controller"
296         depends on ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
297         default y
298         help
299           This option enables early acknowledgement from memory
300           controller. This feature is used to improve CPU memory
301           write performance.
302
303 config TEGRA_ERRATA_1157520
304         bool "Memory writes are not consistent/ordered from CPU"
305         depends on ARCH_TEGRA_11x_SOC
306         help
307           On T11x With early ack scoreboard on, the read/writes to
308           SO and Non-Cached meory are randomly not observed in the
309           order they are performed. Enabling this errata disables
310           early ack scoreboard for T11x.
311
312 config TEGRA_EDP_LIMITS
313         bool "Enforce electrical design limits"
314         depends on TEGRA_SILICON_PLATFORM
315         depends on CPU_FREQ
316         depends on THERMAL
317         default y if ARCH_TEGRA_3x_SOC
318         default n
319         help
320           Limit maximum CPU frequency based on temperature and number
321           of on-line CPUs to keep CPU rail current within power supply
322           capabilities.
323
324 config TEGRA_EMC_TO_DDR_CLOCK
325         int "EMC to DDR clocks ratio"
326         default "2" if ARCH_TEGRA_2x_SOC
327         default "1"
328
329 config TEGRA_GADGET_BOOST_CPU_FREQ
330         int "Boost cpu frequency for tegra usb gadget (0-1300 mhz)"
331         range 0 1300
332         default 0
333         help
334           Devices need to boost frequency of CPU when they are connected
335           to host pc through usb cable for better performance. This value
336           is the amount of the frequency (in mhz) to be boosted. If it is
337           zero boosting frequency will not be enabled. This value will be
338           used only by usb gadget driver.
339
340 config TEGRA_DYNAMIC_PWRDET
341         bool "Enable dynamic activation of IO level auto-detection"
342         depends on TEGRA_SILICON_PLATFORM
343         default n
344         help
345           This option allows turning off tegra IO level auto-detection
346           when IO power is stable. If set auto-detection cells are active
347           only during power transitions, otherwise, the cells are active
348           always
349
350 config TEGRA_EDP_EXACT_FREQ
351         bool "Use maximum possible cpu frequency when EDP capping"
352         depends on TEGRA_EDP_LIMITS
353         default y
354         help
355           When enabled the cpu will run at the exact frequency
356           specified in the EDP table when EDP capping is applied; when
357           disabled the next lower cpufreq frequency will be used.
358
359 config TEGRA_USB_MODEM_POWER
360         bool "Enable tegra usb modem power management"
361         default n
362         help
363           This option enables support for out-of_band remote wakeup, selective
364           suspend and system suspend/resume.
365
366 config TEGRA_BB_XMM_POWER
367         bool "Enable power driver for XMM modem"
368         default n
369         help
370           Enables power driver which controls gpio signals to XMM modem.
371
372 config TEGRA_BB_XMM_POWER2
373         tristate "Enable power driver for XMM modem (flashless)"
374         default n
375         help
376           Enables power driver which controls gpio signals to XMM modem
377           (in flashless configuration).  User-mode application must
378           insert this LKM to initiate 2nd USB enumeration power sequence
379           - after modem software has been downloaded to flashless device.
380
381 config TEGRA_PLLM_RESTRICTED
382         bool "Restrict PLLM usage as module clock source"
383         depends on !ARCH_TEGRA_2x_SOC
384         default n
385         help
386           When enabled, PLLM usage may be restricted to modules with dividers
387           capable of dividing maximum PLLM frequency at minimum voltage. When
388           disabled, PLLM is used as a clock source with no restrictions (which
389           may effectively increase lower limit for core voltage).
390
391 config TEGRA_WDT_RECOVERY
392         bool "Enable suspend/resume watchdog recovery mechanism"
393         default n
394         help
395           Enables watchdog recovery mechanism to protect against
396           suspend/resume hangs.
397
398 config TEGRA_LP2_CPU_TIMER
399         bool
400
401 config TEGRA_RAIL_OFF_MULTIPLE_CPUS
402         bool
403
404 config TEGRA_SLOW_CSITE
405         bool "lower csite clock to 1 Mhz to reduce its power consumption"
406         default n
407         help
408           When enabled, csite will be running at 1 Mhz and the performance of
409           jtag, lauterbach and other debugger will be extremely slow.
410
411 config TEGRA_PREPOWER_WIFI
412         bool "Pre-power up WiFi "
413         default n
414         help
415           Pre-power up the on board WiFi chip
416
417 config TEGRA_DYNAMIC_CBUS
418         bool "Adjust dynamically graphics clocks cumulative dvfs table"
419
420 config TEGRA_DUAL_CBUS
421         bool "Use two plls (PLLC2/PLLC3) as graphics clocks sources"
422
423 config TEGRA_MIGRATE_CBUS_USERS
424         bool "Move cbus users between source plls to optimize cumulative dvfs"
425         depends on TEGRA_DYNAMIC_CBUS && TEGRA_DUAL_CBUS
426
427 config TEGRA_SKIN_THROTTLE
428         bool "Skin Temperature throttling"
429         depends on TEGRA_THERMAL_THROTTLE
430         depends on THERM_EST
431         default n
432         help
433           Enable throttling to control the temperature of the skin/case
434           of the device.
435
436 config ARCH_TEGRA_4GB_MEMORY
437         bool "Full 4GB physical memory support"
438         default n
439         help
440           Harmless to select this even if hardware does not support full
441           4GB physical memory.
442
443 config TEGRA_LP1_950
444         bool "LP1 low core voltage"
445         default n
446         depends on ARCH_TEGRA_3x_SOC
447         help
448                 Enable support for LP1 Core voltage to set to lowest
449
450 config TEGRA_LATENCY_ALLOWANCE
451         bool "Allow memory clients to configure latency allowance"
452         help
453           Latency allowance is a per-memory-client setting that tells the
454           memory controller how long it can ignore a request in favor of
455           others. In other words, It indicates how long a request from specific
456           memory client can wait before it is served.
457           Enabling this option allows memory clients configure the
458           latency allowance as per their bandwidth requirement.
459
460 config TEGRA_LATENCY_ALLOWANCE_SCALING
461         bool "Enable latency allowance scaling"
462         depends on TEGRA_LATENCY_ALLOWANCE
463         help
464           Enables latency allowance scaling, which enables scaling
465           programmed latency allowance values based on fifo threshold levels
466           set for for display and vi hardware.
467
468 config TEGRA_MC_PTSA
469         bool "Enable MC PTSA programming"
470         depends on TEGRA_LATENCY_ALLOWANCE
471         help
472           Enables Priority Tier Snap Arbiter programming in
473           Memory Controller. PTSA is a Memory Controller feature that
474           allows specifying the bandwidth necessary for ISO clients.
475
476 config TEGRA_ISOMGR
477         bool "Isochronous Bandwidth Manager "
478         help
479           When enabled, drivers for ISO units can obtain ISO BW.
480           The memory controller (MC) for each Tegra platform can supply
481           a limited amount of isochronous (real-time) bandwidth.  When
482           enabled, isomgr will manage a pool of ISO BW.
483
484 config TEGRA_ISOMGR_POOL_KB_PER_SEC
485         int "Size of isomgr pool "
486         default 0
487         help
488           Set this maximum ISO BW (in Kbytes/sec) that platform supports.
489           The memory controller (MC) for each Tegra platform can supply
490           a limited amount of isochronous (real-time) bandwidth.  Each
491           platform must specify the maximum amount of ISO BW that isomgr
492           should manage.
493
494 config TEGRA_ISOMGR_SYSFS
495         bool "Visibility into Isochronous Bandwidth Manager state "
496         depends on TEGRA_ISOMGR
497         help
498           When enabled, sysfs can be used to query isomgr state.
499           This is used for visibility into isomgr state.  It could
500           be useful in debug or in understanding performance on a
501           running system.
502
503 config TEGRA_ISOMGR_DEBUG
504         bool "Inject stimulus into Isochronous Bandwidth Manager "
505         depends on TEGRA_ISOMGR && TEGRA_ISOMGR_SYSFS
506         help
507           When enabled, sysfs can be used to inject stimulus into isomgr.
508           This is used to generate stimulus to isomgr for debug.  It's
509           especially useful for contriving isomgr tests.  You can write
510           user space tests that exercise isomgr in ways that drivers
511           couldn't easily accommodate.
512
513 config TEGRA_IO_DPD
514         bool "Allow IO DPD"
515         depends on ARCH_TEGRA_3x_SOC
516         depends on PM_SLEEP
517         default y
518         help
519           Allow devices listed in tegra_list_io_dpd[] to go into
520           Deep Power Down (DPD) state. This is a temporary config
521           option until a proper way is implemented to resolve this issue.
522
523 config TEGRA_USE_DFLL_RANGE
524         int "Default CPU DFLL operating range"
525         depends on ARCH_TEGRA_HAS_CL_DVFS
526         range 0 2
527         default "1" if TEGRA_SILICON_PLATFORM
528         default "0"
529         help
530           Defines default range for dynamic frequency lock loop (DFLL)
531           to be used as CPU clock source:
532           "0" - DFLL is not used,
533           "1" - DFLL is used as a source for all CPU rates
534           "2" - DFLL is used only for high rates above crossover with
535                 PLL dvfs curve
536
537 config TEGRA_TIMER_HZ
538         int "Kernel HZ (jiffies per second)"
539         default "100" if TEGRA_FPGA_PLATFORM
540         default "1000"
541
542 config TEGRA_SOCTHERM
543         bool "Enable soctherm"
544         depends on ARCH_TEGRA_11x_SOC
545         default y
546         help
547           Enables use of soctherm for thermal management.
548
549 config TEGRA_VIRTUAL_CPUID
550         bool "virtualized CPUID"
551         depends on !TRUSTED_FOUNDATIONS
552         depends on ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
553         default n
554         help
555           Enables virtualized CPUID.
556 endif