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