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