arm: tegra12: enable PM_GENERIC_DOMAINS
[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         depends on !ARCH_TEGRA_12x_SOC
24         depends on !ARCH_TEGRA_14x_SOC
25         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
26         select ARCH_SUPPORTS_MSI if TEGRA_PCI
27         select ARCH_TEGRA_HAS_ARM_SCU
28         select ARCH_TEGRA_HAS_PCIE
29         select ARM_CPU_SUSPEND if PM
30         select ARM_ERRATA_716044
31         select ARM_ERRATA_720789
32         select ARM_ERRATA_742230 if SMP
33         select ARM_ERRATA_751472
34         select ARM_ERRATA_754327 if SMP
35         select ARM_ERRATA_761320 if SMP
36         select ARM_ERRATA_764369 if SMP
37         select ARM_GIC
38         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
39         select COMMON_CLK
40         select CPA
41         select CPU_FREQ_TABLE if CPU_FREQ
42         select CPU_V7
43         select NVMAP_CACHE_MAINT_BY_SET_WAYS
44         select NVMAP_DEFERRED_CACHE_MAINT
45         select NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
46         select PCI_MSI if TEGRA_PCI
47         select PINCTRL
48         select PINCTRL_TEGRA20
49         select PL310_ERRATA_769419 if CACHE_L2X0
50         select PM_GENERIC_DOMAINS if PM
51         select SOC_BUS
52         select USB_ARCH_HAS_EHCI if USB_SUPPORT
53         select USB_ULPI if USB_PHY
54         select USB_ULPI_VIEWPORT if USB_PHY
55         help
56           Support for NVIDIA Tegra AP20 and T20 processors, based on the
57           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
58
59 config ARCH_TEGRA_3x_SOC
60         bool "Enable support for Tegra30 family"
61         depends on !ARCH_TEGRA_11x_SOC
62         depends on !ARCH_TEGRA_12x_SOC
63         depends on !ARCH_TEGRA_14x_SOC
64         select ARCH_SUPPORTS_MSI if TEGRA_PCI
65         select ARCH_TEGRA_HAS_ARM_SCU
66         select ARCH_TEGRA_HAS_PCIE
67         select ARCH_TEGRA_HAS_SATA
68         select ARCH_TEGRA_HAS_DUAL_3D
69         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
70         select ARM_CPU_SUSPEND if PM
71         select ARM_ERRATA_743622
72         select ARM_ERRATA_751472
73         select ARM_ERRATA_754322
74         select ARM_ERRATA_761320 if SMP
75         select ARM_ERRATA_764369 if SMP
76         select ARM_GIC
77         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
78         select COMMON_CLK
79         select CPA
80         select CPU_FREQ_TABLE if CPU_FREQ
81         select CPU_V7
82         select GIC_SET_MULTIPLE_CPUS if SMP
83         select NVMAP_CACHE_MAINT_BY_SET_WAYS
84         select NVMAP_DEFERRED_CACHE_MAINT
85         select NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
86         select PCI_MSI if TEGRA_PCI
87         select PINCTRL
88         select PINCTRL_TEGRA30
89         select PL310_ERRATA_727915
90         select PL310_ERRATA_769419 if CACHE_L2X0
91         select PM_GENERIC_DOMAINS if PM
92         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
93         select SOC_BUS
94         select TEGRA_ERRATA_1053704
95         select TEGRA_LP2_CPU_TIMER if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
96         select USB_ARCH_HAS_EHCI if USB_SUPPORT
97         select USB_ULPI if USB_PHY
98         select USB_ULPI_VIEWPORT if USB_PHY
99         help
100           Support for NVIDIA Tegra T30 processor family, based on the
101           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
102
103 config ARCH_TEGRA_11x_SOC
104         bool "Tegra 11x family SOC"
105         depends on !ARCH_TEGRA_12x_SOC
106         depends on !ARCH_TEGRA_14x_SOC
107         select ARCH_HAS_PASR
108         select ARCH_TEGRA_4GB_MEMORY
109         select ARCH_TEGRA_HAS_CL_DVFS
110         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
111         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
112         select ARM_CPU_SUSPEND if PM
113         select ARM_ERRATA_798181
114         select ARM_ERRATA_799270
115         select ARM_GIC
116         select ARM_L1_CACHE_SHIFT_6
117         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
118         select CPU_V7
119         select HAVE_ARM_ARCH_TIMER
120         select NVMAP_CACHE_MAINT_BY_SET_WAYS
121         select NVMAP_DEFERRED_CACHE_MAINT
122         select PINCTRL
123         select PM_GENERIC_DOMAINS if PM
124         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
125         select SOC_BUS
126         select TEGRA_DUAL_CBUS
127         select TEGRA_CORE_EDP_LIMITS
128         select TEGRA_ERRATA_977223
129         select TEGRA_ERRATA_1053704
130         select TEGRA_ERRATA_1157520
131         select TEGRA_ISOMGR
132         select TEGRA_ISOMGR_SYSFS
133         select TEGRA_LP2_CPU_TIMER if !TEGRA_RAIL_OFF_MULTIPLE_CPUS
134         select TEGRA_MC_PTSA if !TEGRA_FPGA_PLATFORM
135         select TEGRA_THERMAL_THROTTLE_EXACT_FREQ
136         select TEGRA_VDD_CORE_OVERRIDE if TEGRA_EMC_SCALING_ENABLE
137         select USB_ARCH_HAS_EHCI if USB_SUPPORT
138         select USB_EHCI_TEGRA if USB_SUPPORT
139         select USB_ULPI if USB_SUPPORT
140         select USB_ULPI_VIEWPORT if USB_SUPPORT
141         help
142           Support for NVIDIA Tegra 11x family of SoCs, based upon the
143           ARM Cortex-A15MP CPU
144
145 config ARCH_TEGRA_12x_SOC
146         bool "Tegra 12x family SOC"
147         depends on !ARCH_TEGRA_14x_SOC
148         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
149         select ARCH_TEGRA_HAS_PCIE
150         select CPU_V7
151         select ARM_L1_CACHE_SHIFT_6
152         select ARM_ARCH_TIMER
153         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
154         select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
155         select ARM_CPU_SUSPEND if PM
156         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
157         select ARM_GIC
158         select ARCH_REQUIRE_GPIOLIB
159         select USB_ARCH_HAS_EHCI if USB_SUPPORT
160         select USB_EHCI_TEGRA if USB_SUPPORT
161         select USB_ULPI if USB_SUPPORT
162         select USB_ULPI_VIEWPORT if USB_SUPPORT
163         select USE_OF
164         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
165         select ARCH_SUPPORTS_MSI if TEGRA_PCI
166         select PCI_MSI if TEGRA_PCI
167         select ARCH_TEGRA_HAS_CL_DVFS
168         select TEGRA_DYNAMIC_CBUS
169         select TEGRA_DUAL_CBUS
170         select ARCH_TEGRA_VIC
171         select SOC_BUS
172         select THERMAL
173         select PM_GENERIC_DOMAINS if PM
174         help
175           Support for NVIDIA Tegra 12x family of SoCs, based upon the
176           ARM Cortex-A15MP CPU
177
178 config ARCH_TEGRA_14x_SOC
179         bool "Tegra 14x family SOC"
180         select ARCH_HAS_PASR
181         select ARCH_TEGRA_HAS_ARM_SCU
182         select ARCH_TEGRA_HAS_CL_DVFS
183         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
184         select ARM_CPU_SUSPEND if PM
185         select ARM_ERRATA_754322
186         select ARM_ERRATA_764369 if SMP
187         select ARM_GIC
188         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
189         select PINCTRL
190         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
191         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
192         select CPA
193         select CPU_V7
194         select EDP_FRAMEWORK
195         select GIC_SET_MULTIPLE_CPUS if SMP
196         select NVMAP_CACHE_MAINT_BY_SET_WAYS
197         select NVMAP_DEFERRED_CACHE_MAINT
198         select NVMAP_OUTER_CACHE_MAINT_BY_SET_WAYS
199         select PM_GENERIC_DOMAINS if PM
200         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
201         select SOC_BUS
202         select TEGRA_DISABLE_BBC_LATENCY_ALLOWANCE
203         select TEGRA_DUAL_CBUS
204         select TEGRA_ERRATA_977223
205         select TEGRA_ERRATA_1053704
206         select TEGRA_ERRATA_1213083
207         select TEGRA_ERRATA_1252872
208         select TEGRA_ISOMGR
209         select TEGRA_ISOMGR_SYSFS
210         select TEGRA_LP2_CPU_TIMER if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
211         select USB_ARCH_HAS_EHCI if USB_SUPPORT
212         select USB_EHCI_TEGRA if USB_SUPPORT
213         select USB_ULPI if USB_SUPPORT
214         select USB_ULPI_VIEWPORT if USB_SUPPORT
215         help
216           Support for NVIDIA Tegra 14x family of SoCs, based upon the
217           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
218
219 config ARCH_TEGRA_HAS_ARM_SCU
220         bool
221
222 config ARCH_TEGRA_HAS_DUAL_3D
223         bool
224
225 config ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
226         bool
227
228 config ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
229         bool
230
231 config ARCH_TEGRA_HAS_PCIE
232         bool
233
234 config ARCH_TEGRA_HAS_SATA
235         bool
236
237 config ARCH_TEGRA_HAS_CL_DVFS
238         bool
239
240 config TEGRA_PCI
241         bool "PCIe host controller driver"
242         select PCI
243         depends on ARCH_TEGRA_HAS_PCIE
244         help
245           Adds PCIe Host controller driver for tegra based systems
246
247 config TEGRA_PCIE_SKIP_POWERGATING
248         bool "Skip PCIE powergating"
249         depends on TEGRA_PCI
250         help
251          Do not powergate PCIE partition on boot up.
252
253 config TEGRA_AHB
254         bool "Enable AHB driver for NVIDIA Tegra SoCs"
255         default y
256         help
257           Adds AHB configuration functionality for NVIDIA Tegra SoCs,
258           which controls AHB bus master arbitration and some
259           performance parameters(priority, prefech size).
260
261 comment "Tegra board type"
262
263 config MACH_CURACAO
264        bool "Curacao board"
265        depends on ARCH_TEGRA_11x_SOC
266        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
267        select TEGRA_FPGA_PLATFORM
268        help
269          Support for NVIDIA Curacao FPGA development platform
270
271 config MACH_BONAIRE
272        bool "Bonaire board"
273        depends on ARCH_TEGRA_12x_SOC
274        select TEGRA_FPGA_PLATFORM
275        help
276          Support for NVIDIA Bonaire FPGA development platform
277
278 config MACH_DALMORE
279        bool "Dalmore board"
280        depends on ARCH_TEGRA_11x_SOC
281        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
282        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
283        help
284          Support for NVIDIA DALMORE development platform
285
286 config MACH_PISMO
287        bool "Pismo board"
288        depends on ARCH_TEGRA_11x_SOC
289        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
290        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
291        help
292          Support for NVIDIA PISMO development platform
293
294 config MACH_MACALLAN
295        bool "Macallan board"
296        depends on ARCH_TEGRA_11x_SOC
297        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
298        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
299        select EDP_FRAMEWORK
300        help
301          Support for NVIDIA MACALLAN development platform
302
303 config MACH_TEGRA_PLUTO
304        bool "Pluto board"
305        depends on ARCH_TEGRA_11x_SOC
306        select MACH_HAS_SND_SOC_TEGRA_CS42L73 if SND_SOC
307        select MACH_HAS_SND_SOC_TEGRA_TLV320AIC326X if SND_SOC
308        select EDP_FRAMEWORK
309        help
310          Support for NVIDIA PLUTO development platform
311
312 config MACH_ROTH
313        bool "Thor board"
314        depends on ARCH_TEGRA_11x_SOC
315        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
316        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
317        help
318          Support for NVIDIA THOR development platform
319
320 choice
321        prompt "Tegra platform type"
322        default TEGRA_SILICON_PLATFORM
323
324 config TEGRA_SILICON_PLATFORM
325         bool "Silicon"
326         help
327           This enables support for a Tegra silicon platform.
328
329 config TEGRA_SIMULATION_PLATFORM
330         bool "Simulation"
331         select TEGRA_PRE_SILICON_SUPPORT
332         select LESS_GCC_OPT if DEBUG_KERNEL
333         select READABLE_ASM if DEBUG_KERNEL
334         select TEGRA_SIMULATION_SPLIT_MEM
335         help
336           This enables support for a Tegra simulation platform.
337           Select this only if you are an NVIDIA developer working
338           on a simulation platform.
339
340 config TEGRA_FPGA_PLATFORM
341         bool "FPGA"
342         select TEGRA_PRE_SILICON_SUPPORT
343         select LESS_GCC_OPT if DEBUG_KERNEL
344         select READABLE_ASM if DEBUG_KERNEL
345         help
346           This enables support for a Tegra FPGA platform.
347           Select this only if you are an NVIDIA developer working
348           on a FPGA platform.
349 endchoice
350
351 config TEGRA_PRE_SILICON_SUPPORT
352         bool "Enable pre-silicon platform support"
353         help
354           This enables support for Tegra early development platforms.
355           Select this only if you are an NVIDIA developer working on
356           FPGA, Emulation or Simulation.
357
358 config TEGRA_SIMULATION_SPLIT_MEM
359         bool "Tegra Simulation Split Memory Configuration"
360         default n
361         help
362           This enables support for a Tegra split memory
363           simulation. It can be used as part of ASIM/QT test
364           setup. Select this only if you are an NVIDIA developer
365           working on a simulation platform.
366
367 config TEGRA_FIQ_DEBUGGER
368         bool "Enable the FIQ serial debugger on Tegra"
369         default n
370         select FIQ_DEBUGGER
371         help
372           Enables the FIQ serial debugger on Tegra
373
374 config TEGRA_EMC_SCALING_ENABLE
375         bool "Enable scaling the memory frequency"
376         depends on TEGRA_SILICON_PLATFORM
377         default n
378
379 config TEGRA_CPU_DVFS
380         bool "Enable voltage scaling on Tegra CPU"
381         depends on TEGRA_SILICON_PLATFORM
382         default y
383
384 config TEGRA_CORE_DVFS
385         bool "Enable voltage scaling on Tegra core"
386         depends on TEGRA_SILICON_PLATFORM
387         depends on TEGRA_CPU_DVFS
388         default y
389
390 config TEGRA_GK20A
391         bool "Enable the GK20A graphics engine"
392         depends on ARCH_TEGRA_12x_SOC
393         default y
394         help
395           Enable support for the GK20A graphics engine
396
397 config TEGRA_AVP_KERNEL_ON_MMU
398         bool "Use AVP MMU to relocate AVP kernel"
399         depends on ARCH_TEGRA_2x_SOC
400         default y
401         help
402           Use AVP MMU to relocate AVP kernel (nvrm_avp.bin).
403
404 config TEGRA_AVP_KERNEL_ON_SMMU
405         bool "Use SMMU to relocate AVP kernel"
406         depends on TEGRA_IOVMM_SMMU || TEGRA_IOMMU_SMMU
407         default y
408         help
409           Use SMMU to relocate AVP kernel (nvrm_avp.bin).
410
411 config TEGRA_ARB_SEMAPHORE
412         bool
413
414 config TEGRA_THERMAL_THROTTLE
415         bool "Enable throttling of CPU speed on overtemp"
416         depends on TEGRA_SILICON_PLATFORM
417         depends on CPU_FREQ
418         depends on THERMAL
419         default y
420         help
421           Also requires enabling a temperature sensor such as NCT1008.
422
423 config TEGRA_THERMAL_THROTTLE_EXACT_FREQ
424         bool "Use exact cpu frequency capping when thermal throttling"
425         depends on TEGRA_THERMAL_THROTTLE
426         default n
427         help
428           When this option is enabled, the cpu will run at the exact
429           frequency specified in the thermal throttle table when thermal
430           throttling; when disabled, the cpu frequency will clip to
431           the next lower frequency from the cpu frequency table.
432
433 config TEGRA_CLOCK_DEBUG_WRITE
434         bool "Enable debugfs write access to clock tree"
435         depends on DEBUG_FS
436         default n
437
438 config TEGRA_CLUSTER_CONTROL
439         bool
440         depends on ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
441         default y if PM_SLEEP
442
443 config TEGRA_CPUQUIET
444         bool
445
446 config TEGRA_AUTO_HOTPLUG
447         bool "Enable automatic CPU hot-plugging"
448         depends on HOTPLUG_CPU && CPU_FREQ && !ARCH_CPU_PROBE_RELEASE && !ARCH_TEGRA_2x_SOC
449         select TEGRA_CPUQUIET
450         default y
451         help
452           This option enables turning CPUs off/on and switching tegra
453           high/low power CPU clusters automatically, corresponding to
454           CPU frequency scaling.
455
456 config TEGRA_MC_EARLY_ACK
457         bool "Enable early acknowledgement from mermory controller"
458         depends on ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
459         default y
460         help
461           This option enables early acknowledgement from memory
462           controller. This feature is used to improve CPU memory
463           write performance.
464
465 config TEGRA_ERRATA_1252872
466         bool "DLL experiences internal sychronization issue"
467         depends on ARCH_TEGRA_14x_SOC
468         help
469           The digital DLL in the T148 A01 chip has an internal synchronization
470           issue that can lead to reading invalid results. These invalid results
471           are returned when multiple bits change in one calibration value to
472           the next. To work around this a two step process is used: (1) the DLL
473           is enabled and locked (but not sampled); and (2) the DLL clock is
474           disabled and the internal state machine is reinvoked (and then
475           sampled). This requires that the DLL is never placed in a continuous
476           running mode.
477
478 config TEGRA_ERRATA_1213083
479         bool "HOTRESET_STAT can return invalid status"
480         depends on ARCH_TEGRA_14x_SOC
481         help
482           On T14x it is possible to read the HOTRESET_STAT register before
483           the HW has had a chance to transition into the flush state. Thus
484           the flush status appears to be done. This errata adds a small delay
485           (at least 25 mcclk cycles) before polling the HOTRESET_STAT register.
486
487 config TEGRA_ERRATA_1157520
488         bool "Memory writes are not consistent/ordered from CPU"
489         depends on ARCH_TEGRA_11x_SOC
490         help
491           On T11x With early ack scoreboard on, the read/writes to
492           SO and Non-Cached meory are randomly not observed in the
493           order they are performed. Enabling this errata disables
494           early ack scoreboard for T11x.
495
496 config TEGRA_ERRATA_977223
497         bool "PTSA ring 1 to ring 0 does not account for forced coalescing"
498         depends on ARCH_TEGRA_11x_SOC || ARCH_TEGRA_14x_SOC
499         help
500           The forced coalescing logic will "drop" the first request of the
501           coalesced pair after the ring 1 snap arbiter.  This means that for
502           forced coalescing clients, ring 0 only sees half the requests.
503           Therefore the grant decrement for the ptsa would only happen 1/2 of
504           the expected times resulting in ring 1 input always being
505           high priority. A SW work around is to program the ring 1 input to
506           ring 0 ptsa rate to be 1/2 of the value intended.
507
508 config TEGRA_EDP_LIMITS
509         bool "Enforce electrical design limits on CPU rail"
510         depends on TEGRA_SILICON_PLATFORM
511         depends on CPU_FREQ
512         depends on THERMAL
513         default y if ARCH_TEGRA_3x_SOC
514         default n
515         help
516           Limit maximum CPU frequency based on temperature and number
517           of on-line CPUs to keep CPU rail current within power supply
518           capabilities.
519
520 config TEGRA_EMC_TO_DDR_CLOCK
521         int "EMC to DDR clocks ratio"
522         default "2" if ARCH_TEGRA_2x_SOC
523         default "1"
524
525 config TEGRA_GADGET_BOOST_CPU_FREQ
526         int "Boost cpu frequency for tegra usb gadget"
527         range 0 1300 if ARCH_TEGRA_3x_SOC
528         range 0 1800 if ARCH_TEGRA_11x_SOC
529         range 0 2000 if ARCH_TEGRA_14x_SOC
530         default 0
531         help
532           Devices need to boost frequency of CPU when they are connected
533           to host pc through usb cable for better performance. This value
534           is the amount of the frequency (in Mhz) to be boosted. If it is
535           zero boosting frequency will not be enabled. This value will be
536           used only by usb gadget driver.
537
538 config TEGRA_EHCI_BOOST_CPU_FREQ
539         int "Boost cpu frequency(in Mhz) for tegra usb host"
540         range 0 1300 if ARCH_TEGRA_3x_SOC
541         range 0 1800 if ARCH_TEGRA_11x_SOC
542         range 0 2000 if ARCH_TEGRA_14x_SOC
543         default 0
544         help
545           This value is the amount of the cpu frequency (in Mhz)
546           to be boosted. If it is zero boosting frequency will not
547           be enabled. This value will be used only by usb ehci driver.
548
549 config TEGRA_DYNAMIC_PWRDET
550         bool "Enable dynamic activation of IO level auto-detection"
551         depends on TEGRA_SILICON_PLATFORM
552         default n
553         help
554           This option allows turning off tegra IO level auto-detection
555           when IO power is stable. If set auto-detection cells are active
556           only during power transitions, otherwise, the cells are active
557           always
558
559 config TEGRA_EDP_EXACT_FREQ
560         bool "Use maximum possible cpu frequency when EDP capping"
561         depends on TEGRA_EDP_LIMITS
562         default y
563         help
564           When enabled the cpu will run at the exact frequency
565           specified in the EDP table when EDP capping is applied; when
566           disabled the next lower cpufreq frequency will be used.
567
568 config TEGRA_WAKEUP_MONITOR
569         bool "Enable tegra wakeup monitor"
570         depends on PM_SLEEP
571         help
572           This option enables support for the monitor of tegra wakeups, it will
573           send out wakeup source and uevents which indicate suspend_prepare and
574           post_suspend.
575
576 config TEGRA_BB_XMM_POWER
577         bool "Enable power driver for XMM modem"
578         default n
579         help
580           Enables power driver which controls gpio signals to XMM modem.
581
582 config TEGRA_BB_XMM_POWER2
583         tristate "Enable power driver for XMM modem (flashless)"
584         default n
585         help
586           Enables power driver which controls gpio signals to XMM modem
587           (in flashless configuration).  User-mode application must
588           insert this LKM to initiate 2nd USB enumeration power sequence
589           - after modem software has been downloaded to flashless device.
590
591 config TEGRA_BBC_PROXY
592         bool "Enable BBC Proxy driver"
593         default n
594         help
595           Enables driver which handles miscellaneous services required
596           by the BB core. Handles initialization of EDP, ISO Bandwidth,
597           and Latency Allowance settings. Additional setting adjustments
598           can be done from user space through sysfs.
599
600 config TEGRA_PLLM_RESTRICTED
601         bool "Restrict PLLM usage as module clock source"
602         depends on !ARCH_TEGRA_2x_SOC
603         default n
604         help
605           When enabled, PLLM usage may be restricted to modules with dividers
606           capable of dividing maximum PLLM frequency at minimum voltage. When
607           disabled, PLLM is used as a clock source with no restrictions (which
608           may effectively increase lower limit for core voltage).
609
610 config TEGRA_WDT_RECOVERY
611         bool "Enable suspend/resume watchdog recovery mechanism"
612         default n
613         help
614           Enables watchdog recovery mechanism to protect against
615           suspend/resume hangs.
616
617 config TEGRA_LP2_CPU_TIMER
618         bool
619
620 config TEGRA_RAIL_OFF_MULTIPLE_CPUS
621         bool
622
623 config TEGRA_SLOW_CSITE
624         bool "lower csite clock to 1 Mhz to reduce its power consumption"
625         default n
626         help
627           When enabled, csite will be running at 1 Mhz and the performance of
628           jtag, lauterbach and other debugger will be extremely slow.
629
630 config TEGRA_PREPOWER_WIFI
631         bool "Pre-power up WiFi "
632         default n
633         help
634           Pre-power up the on board WiFi chip
635
636 config TEGRA_DYNAMIC_CBUS
637         bool "Adjust dynamically graphics clocks cumulative dvfs table"
638
639 config TEGRA_DUAL_CBUS
640         bool "Use two plls (PLLC2/PLLC3) as graphics clocks sources"
641
642 config TEGRA_MIGRATE_CBUS_USERS
643         bool "Move cbus users between source plls to optimize cumulative dvfs"
644         depends on TEGRA_DYNAMIC_CBUS && TEGRA_DUAL_CBUS
645
646 config TEGRA_SKIN_THROTTLE
647         bool "Skin Temperature throttling"
648         depends on TEGRA_THERMAL_THROTTLE
649         depends on THERM_EST
650         default n
651         help
652           Enable throttling to control the temperature of the skin/case
653           of the device.
654
655 config ARCH_TEGRA_4GB_MEMORY
656         bool "Full 4GB physical memory support"
657         default n
658         help
659           Harmless to select this even if hardware does not support full
660           4GB physical memory.
661
662 config TEGRA_LP1_LOW_COREVOLTAGE
663         bool "LP1 low core voltage"
664         default n
665         depends on ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
666         help
667                 Enable support for LP1 Core voltage to set to lowest
668
669 config TEGRA_DISABLE_BBC_LATENCY_ALLOWANCE
670         bool "Disable BBCRW latency allowance"
671         help
672           Disables BBCRW latency allowance configuration by
673           clients. The BBCRW latency allowance would remain
674           same as boot time configured value.
675
676 config TEGRA_BASEBAND
677         bool "Enable integrated tegra baseband support"
678         default n
679         help
680           This option enables support for integrated icera baseband
681           This driver is used to setup shared memory space, provide
682           functions to handle IPC mechanism and a sysfs interface for IPC
683           notification which support polling on sysfs file.
684
685 config TEGRA_BASEBAND_SIMU
686         bool "Enable integrated tegra baseband simulation"
687         select TEGRA_BASEBAND
688         help
689           This option enables tegra baseband simulation when actual hardware
690           is not present. IPC is simulated when writing to status file which
691           allow high level tests in local loopback
692
693 config TEGRA_MC_PTSA
694         bool "Enable MC PTSA programming"
695         help
696           Enables Priority Tier Snap Arbiter programming in
697           Memory Controller. PTSA is a Memory Controller feature that
698           allows specifying the bandwidth necessary for ISO clients.
699
700 config TEGRA_ISOMGR
701         bool "Isochronous Bandwidth Manager "
702         help
703           When enabled, drivers for ISO units can obtain ISO BW.
704           The memory controller (MC) for each Tegra platform can supply
705           a limited amount of isochronous (real-time) bandwidth.  When
706           enabled, isomgr will manage a pool of ISO BW.
707
708 config TEGRA_ISOMGR_POOL_KB_PER_SEC
709         int "Size of isomgr pool "
710         default 0
711         help
712           Set this maximum ISO BW (in Kbytes/sec) that platform supports.
713           The memory controller (MC) for each Tegra platform can supply
714           a limited amount of isochronous (real-time) bandwidth.  Each
715           platform must specify the maximum amount of ISO BW that isomgr
716           should manage.
717
718 config TEGRA_ISOMGR_SYSFS
719         bool "Visibility into Isochronous Bandwidth Manager state "
720         depends on TEGRA_ISOMGR
721         help
722           When enabled, sysfs can be used to query isomgr state.
723           This is used for visibility into isomgr state.  It could
724           be useful in debug or in understanding performance on a
725           running system.
726
727 config TEGRA_ISOMGR_MAX_ISO_BW_QUIRK
728         bool "Relax Max ISO Bw limit"
729         depends on TEGRA_ISOMGR
730         default y
731         help
732           When enabled, allows system with less ISO bw continue to
733           work. This is necessary for systems running at lower
734           EMC clock freq or on FPGA.
735
736 config TEGRA_IO_DPD
737         bool "Allow IO DPD"
738         depends on ARCH_TEGRA_3x_SOC
739         depends on PM_SLEEP
740         default y
741         help
742           Allow devices listed in tegra_list_io_dpd[] to go into
743           Deep Power Down (DPD) state. This is a temporary config
744           option until a proper way is implemented to resolve this issue.
745
746 config TEGRA_USE_DFLL_RANGE
747         int "Default CPU DFLL operating range"
748         depends on ARCH_TEGRA_HAS_CL_DVFS
749         range 0 2
750         default "1" if TEGRA_SILICON_PLATFORM
751         default "0"
752         help
753           Defines default range for dynamic frequency lock loop (DFLL)
754           to be used as CPU clock source:
755           "0" - DFLL is not used,
756           "1" - DFLL is used as a source for all CPU rates
757           "2" - DFLL is used only for high rates above crossover with
758                 PLL dvfs curve
759
760 config TEGRA_TIMER_HZ
761         int "Kernel HZ (jiffies per second)"
762         default "100" if TEGRA_FPGA_PLATFORM
763         default "1000"
764
765 config TEGRA_SOCTHERM
766         bool "Enable soctherm"
767         depends on ARCH_TEGRA_11x_SOC || ARCH_TEGRA_14x_SOC
768         default y
769         help
770           Enables use of soctherm for thermal management.
771
772 config TEGRA_USE_SECURE_KERNEL
773         bool "Boot the linux kernel in non-secure mode"
774         help
775          When enabled, the CPU will boot in the non-secure mode and issue
776          SMCs in order to access secure registers. SMC requests would be
777          serviced by a third party software component running in the secure
778          mode.
779
780 config TEGRA_VIRTUAL_CPUID
781         bool "virtualized CPUID"
782         depends on !TEGRA_USE_SECURE_KERNEL
783         depends on ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
784         default n
785         help
786           Enables virtualized CPUID.
787
788 config TEGRA_NVDUMPER
789         bool "Enable NvDumper for post-mortem debugging"
790         default n
791         help
792           The nvdumper is a tool that saves a copy of RAM following a crash.
793           nvdumper kernel module tracks whether the system has been rebooted
794           cleanly. It does this by writing 'dirty' to a fixed physical memory
795           address when the kernel starts.
796           Then, on a planned reboot, we write 'clean' to this location.
797           The bootloader can then examine this location and see if the reboot
798           was dirty or clean.
799           It will dump the contents of memory after a dirty reboot.
800           This tool would be helpful for debugging kernel crash.
801           In order to use this feature, you should enable debug feature in
802           bootloader compiling option also (-DENABLE_NVDUMPER).
803           You can dump RAM with nvflash tool in dirty boot status.
804           usage: nvflash --dumpram [phy. RAM offset] [length] <filename>
805
806 config TEGRA_ARBITRATION_EMEM_INTR
807         bool "Enable the ARBITRATION_EMEM interrupt in the MC"
808         help
809           Enable this to allow the kernel to track arbitration conflicts
810           in the memory controller.
811
812 config TEGRA_CORE_EDP_LIMITS
813         bool "Enforce electrical design limits on core rail"
814         depends on TEGRA_SILICON_PLATFORM
815         depends on THERMAL
816         default n
817         help
818           Limit maximum GPU and memory frequency to keep core rail current
819           within power supply capabilities.
820
821 config TEGRA_PLLM_SCALED
822         bool "Enable memory PLLM run time scaling"
823         depends on TEGRA_DUAL_CBUS
824         select TEGRA_PLLM_RESTRICTED
825         default n
826         help
827           When enabled, memory PLLM can be scaled at run time to reduce
828           granularity of possible memory rate steps. In this case PLLC
829           provides a backup memory clock while PLLM is re-locking to the
830           new rate.
831 config ARCH_TEGRA_VIC
832         bool "Tegra Video Image Compositor present"
833         default y
834         help
835           Say Y here if the SOC supports the Tegra Video Image Compositor.
836           Note that this not the same as the ARM Vectored Interrupt Controller.
837
838 config TEGRA_MC_DOMAINS
839         bool "Enable MC domains"
840         depends on PM_GENERIC_DOMAINS
841         default n
842         help
843           When enabled, clock gates MC when it's not needed.
844
845 config TEGRA_USE_NCT
846         bool "Enable NCT partition access"
847         help
848           When enabled, we can read non-volatile items from NCT partition.
849
850 config TEGRA_VDD_CORE_OVERRIDE
851         bool "Enable core rail override support"
852         depends on TEGRA_SILICON_PLATFORM
853         default n
854         help
855           When enabled, core rail can be fixed and locked at specified voltage
856           within override range, and core modules clocks are capped at rates
857           safe at override level.
858
859 config TEGRA_GMI
860         bool
861 endif