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