arm: tegra: Set Core to 0.95V in LP1
[linux-3.10.git] / arch / arm / mach-tegra / Kconfig
1 # Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
2 #
3 # This program is free software; you can redistribute it and/or modify it
4 # under the terms and conditions of the GNU General Public License,
5 # version 2, as published by the Free Software Foundation.
6 #
7 # This program is distributed in the hope it will be useful, but WITHOUT
8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
10 # more details.
11 #
12 # You should have received a copy of the GNU General Public License
13 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
14
15 if ARCH_TEGRA
16
17 comment "NVIDIA Tegra options"
18
19 config ARCH_TEGRA_2x_SOC
20         bool "Enable support for Tegra20 family"
21         depends on !ARCH_TEGRA_3x_SOC
22         depends on !ARCH_TEGRA_11x_SOC
23         select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
24         select ARCH_SUPPORTS_MSI if TEGRA_PCI
25         select ARCH_TEGRA_HAS_ARM_SCU
26         select ARCH_TEGRA_HAS_PCIE
27         select ARM_CPU_SUSPEND if PM
28         select ARM_ERRATA_716044
29         select ARM_ERRATA_720789
30         select ARM_ERRATA_742230 if SMP
31         select ARM_ERRATA_751472
32         select ARM_ERRATA_754327 if SMP
33         select ARM_ERRATA_764369 if SMP
34         select ARM_GIC
35         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
36         select COMMON_CLK
37         select CPA
38         select CPU_FREQ_TABLE if CPU_FREQ
39         select CPU_V7
40         select NVMAP_CACHE_MAINT_BY_SET_WAYS
41         select PCI_MSI if TEGRA_PCI
42         select PINCTRL
43         select PINCTRL_TEGRA20
44         select PL310_ERRATA_769419 if CACHE_L2X0
45         select USB_ARCH_HAS_EHCI if USB_SUPPORT
46         select USB_ULPI if USB_PHY
47         select USB_ULPI_VIEWPORT if USB_PHY
48         help
49           Support for NVIDIA Tegra AP20 and T20 processors, based on the
50           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
51
52 config ARCH_TEGRA_3x_SOC
53         bool "Enable support for Tegra30 family"
54         depends on !ARCH_TEGRA_11x_SOC
55         select ARCH_SUPPORTS_MSI if TEGRA_PCI
56         select ARCH_TEGRA_HAS_ARM_SCU
57         select ARCH_TEGRA_HAS_PCIE
58         select ARCH_TEGRA_HAS_SATA
59         select ARCH_TEGRA_HAS_DUAL_3D
60         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
61         select ARM_CPU_SUSPEND if PM
62         select ARM_ERRATA_743622
63         select ARM_ERRATA_751472
64         select ARM_ERRATA_754322
65         select ARM_ERRATA_764369 if SMP
66         select ARM_GIC
67         select ARM_SAVE_DEBUG_CONTEXT if PM_SLEEP
68         select COMMON_CLK
69         select CPA
70         select CPU_FREQ_TABLE if CPU_FREQ
71         select CPU_V7
72         select GIC_SET_MULTIPLE_CPUS if SMP
73         select NVMAP_CACHE_MAINT_BY_SET_WAYS
74         select PCI_MSI if TEGRA_PCI
75         select PINCTRL
76         select PINCTRL_TEGRA30
77         select PL310_ERRATA_727915
78         select PL310_ERRATA_769419 if CACHE_L2X0
79         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
80         select TEGRA_LP2_CPU_TIMER if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
81         select USB_ARCH_HAS_EHCI if USB_SUPPORT
82         select USB_ULPI if USB_PHY
83         select USB_ULPI_VIEWPORT if USB_PHY
84         help
85           Support for NVIDIA Tegra T30 processor family, based on the
86           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
87
88 config ARCH_TEGRA_11x_SOC
89         bool "Tegra 11x family SOC"
90         select ARCH_REQUIRE_GPIOLIB
91         select ARCH_TEGRA_4GB_MEMORY
92         select ARCH_TEGRA_HAS_CL_DVFS
93         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
94         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
95         select ARM_ARCH_TIMER
96         select ARM_CPU_SUSPEND if PM
97         select ARM_GIC
98         select ARM_L1_CACHE_SHIFT_6
99         select CPU_V7
100         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
101         select TEGRA_DUAL_CBUS
102         select TEGRA_DYNAMIC_CBUS
103         select TEGRA_LP2_CPU_TIMER if !TEGRA_RAIL_OFF_MULTIPLE_CPUS
104         select USB_ARCH_HAS_EHCI if USB_SUPPORT
105         select USB_EHCI_TEGRA if USB_SUPPORT
106         select USB_ULPI if USB_SUPPORT
107         select USB_ULPI_VIEWPORT if USB_SUPPORT
108         help
109           Support for NVIDIA Tegra 11x family of SoCs, based upon the
110           ARM Cortex-A15MP CPU
111
112 config ARCH_TEGRA_HAS_ARM_SCU
113         bool
114
115 config ARCH_TEGRA_HAS_DUAL_3D
116         bool
117
118 config ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
119         bool
120
121 config ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
122         bool
123
124 config ARCH_TEGRA_HAS_PCIE
125         bool
126
127 config ARCH_TEGRA_HAS_SATA
128         bool
129
130 config ARCH_TEGRA_HAS_CL_DVFS
131         bool
132
133 config TEGRA_PCI
134         bool "PCIe host controller driver"
135         select PCI
136         depends on ARCH_TEGRA_HAS_PCIE
137         help
138           Adds PCIe Host controller driver for tegra based systems
139
140 config TEGRA_AHB
141         bool "Enable AHB driver for NVIDIA Tegra SoCs"
142         default y
143         help
144           Adds AHB configuration functionality for NVIDIA Tegra SoCs,
145           which controls AHB bus master arbitration and some
146           performance parameters(priority, prefech size).
147
148 comment "Tegra board type"
149
150 config MACH_CURACAO
151        bool "Curacao board"
152        depends on ARCH_TEGRA_11x_SOC
153        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
154        select TEGRA_FPGA_PLATFORM
155        help
156          Support for NVIDIA Curacao FPGA development platform
157
158
159 config MACH_DALMORE
160        bool "Dalmore board"
161        depends on !ARCH_TEGRA_2x_SOC
162        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
163        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
164        help
165          Support for NVIDIA DALMORE development platform
166
167 config MACH_TEGRA_PLUTO
168        bool "Pluto board"
169        depends on ARCH_TEGRA_3x_SOC
170        help
171          Support for NVIDIA PLUTO development platform
172
173 choice
174        prompt "Tegra platform type"
175        default TEGRA_SILICON_PLATFORM
176
177 config TEGRA_SILICON_PLATFORM
178         bool "Silicon"
179         help
180           This enables support for a Tegra silicon platform.
181
182 config TEGRA_SIMULATION_PLATFORM
183         bool "Simulation"
184         help
185           This enables support for a Tegra simulation platform.
186           Select this only if you are an NVIDIA developer working
187           on a simulation platform.
188
189 config TEGRA_FPGA_PLATFORM
190         bool "FPGA"
191         help
192           This enables support for a Tegra FPGA platform.
193           Select this only if you are an NVIDIA developer working
194           on a FPGA platform.
195 endchoice
196
197 config TEGRA_FIQ_DEBUGGER
198         bool "Enable the FIQ serial debugger on Tegra"
199         default n
200         select FIQ_DEBUGGER
201         help
202           Enables the FIQ serial debugger on Tegra
203
204 config TEGRA_EMC_SCALING_ENABLE
205         bool "Enable scaling the memory frequency"
206         depends on TEGRA_SILICON_PLATFORM
207         default n
208
209 config TEGRA_CPU_DVFS
210         bool "Enable voltage scaling on Tegra CPU"
211         depends on TEGRA_SILICON_PLATFORM
212         default y
213
214 config TEGRA_CORE_DVFS
215         bool "Enable voltage scaling on Tegra core"
216         depends on TEGRA_SILICON_PLATFORM
217         depends on TEGRA_CPU_DVFS
218         default y
219
220 config TEGRA_AVP_KERNEL_ON_MMU
221         bool "Use AVP MMU to relocate AVP kernel"
222         depends on ARCH_TEGRA_2x_SOC
223         default y
224         help
225           Use AVP MMU to relocate AVP kernel (nvrm_avp.bin).
226
227 config TEGRA_AVP_KERNEL_ON_SMMU
228         bool "Use SMMU to relocate AVP kernel"
229         depends on TEGRA_IOVMM_SMMU
230         default y
231         help
232           Use SMMU to relocate AVP kernel (nvrm_avp.bin).
233
234 config TEGRA_ARB_SEMAPHORE
235         bool
236
237 config TEGRA_THERMAL
238         bool "Enable Tegra Thermal Framework"
239         depends on ARCH_TEGRA_3x_SOC
240         depends on THERMAL
241         default y
242
243 config TEGRA_THERMAL_THROTTLE
244         bool "Enable throttling of CPU speed on overtemp"
245         depends on TEGRA_SILICON_PLATFORM
246         depends on CPU_FREQ
247         depends on TEGRA_THERMAL
248         default y
249         help
250           Also requires enabling a temperature sensor such as NCT1008.
251
252 config TEGRA_CLOCK_DEBUG_WRITE
253         bool "Enable debugfs write access to clock tree"
254         depends on DEBUG_FS
255         default n
256
257 config TEGRA_CLUSTER_CONTROL
258         bool
259         depends on ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
260         default y if PM_SLEEP
261
262 config TEGRA_CPUQUIET
263         bool
264
265 config TEGRA_AUTO_HOTPLUG
266         bool "Enable automatic CPU hot-plugging"
267         depends on HOTPLUG_CPU && CPU_FREQ && !ARCH_CPU_PROBE_RELEASE && !ARCH_TEGRA_2x_SOC
268         select TEGRA_CPUQUIET
269         default y
270         help
271           This option enables turning CPUs off/on and switching tegra
272           high/low power CPU clusters automatically, corresponding to
273           CPU frequency scaling.
274
275 config TEGRA_MC_EARLY_ACK
276         bool "Enable early acknowledgement from mermory controller"
277         depends on ARCH_TEGRA_3x_SOC
278         default y
279         help
280           This option enables early acknowledgement from memory
281           controller. This feature is used to improve CPU memory
282           write performance.
283
284 config TEGRA_EDP_LIMITS
285         bool "Enforce electrical design limits"
286         depends on TEGRA_SILICON_PLATFORM
287         depends on CPU_FREQ
288         depends on TEGRA_THERMAL
289         default y if ARCH_TEGRA_3x_SOC
290         default n
291         help
292           Limit maximum CPU frequency based on temperature and number
293           of on-line CPUs to keep CPU rail current within power supply
294           capabilities.
295
296 config TEGRA_EMC_TO_DDR_CLOCK
297         int "EMC to DDR clocks ratio"
298         default "2" if ARCH_TEGRA_2x_SOC
299         default "1"
300
301 config TEGRA_GADGET_BOOST_CPU_FREQ
302         int "Boost cpu frequency for tegra usb gadget (0-1300 mhz)"
303         range 0 1300
304         default 0
305         help
306           Devices need to boost frequency of CPU when they are connected
307           to host pc through usb cable for better performance. This value
308           is the amount of the frequency (in mhz) to be boosted. If it is
309           zero boosting frequency will not be enabled. This value will be
310           used only by usb gadget driver.
311
312 config TEGRA_DYNAMIC_PWRDET
313         bool "Enable dynamic activation of IO level auto-detection"
314         depends on TEGRA_SILICON_PLATFORM
315         default n
316         help
317           This option allows turning off tegra IO level auto-detection
318           when IO power is stable. If set auto-detection cells are active
319           only during power transitions, otherwise, the cells are active
320           always
321
322 config TEGRA_EDP_EXACT_FREQ
323         bool "Use maximum possible cpu frequency when EDP capping"
324         depends on TEGRA_EDP_LIMITS
325         default y
326         help
327           When enabled the cpu will run at the exact frequency
328           specified in the EDP table when EDP capping is applied; when
329           disabled the next lower cpufreq frequency will be used.
330
331 config TEGRA_USB_MODEM_POWER
332         bool "Enable tegra usb modem power management"
333         default n
334         help
335           This option enables support for out-of_band remote wakeup, selective
336           suspend and system suspend/resume.
337
338 config TEGRA_BB_XMM_POWER
339         bool "Enable power driver for XMM modem"
340         default n
341         help
342           Enables power driver which controls gpio signals to XMM modem.
343
344 config TEGRA_BB_XMM_POWER2
345         tristate "Enable power driver for XMM modem (flashless)"
346         default n
347         help
348           Enables power driver which controls gpio signals to XMM modem
349           (in flashless configuration).  User-mode application must
350           insert this LKM to initiate 2nd USB enumeration power sequence
351           - after modem software has been downloaded to flashless device.
352
353 config TEGRA_PLLM_RESTRICTED
354         bool "Restrict PLLM usage as module clock source"
355         depends on !ARCH_TEGRA_2x_SOC
356         default n
357         help
358           When enabled, PLLM usage may be restricted to modules with dividers
359           capable of dividing maximum PLLM frequency at minimum voltage. When
360           disabled, PLLM is used as a clock source with no restrictions (which
361           may effectively increase lower limit for core voltage).
362
363 config TEGRA_WDT_RECOVERY
364         bool "Enable suspend/resume watchdog recovery mechanism"
365         default n
366         help
367           Enables watchdog recovery mechanism to protect against
368           suspend/resume hangs.
369
370 config TEGRA_LP2_CPU_TIMER
371         bool
372
373 config TEGRA_RAIL_OFF_MULTIPLE_CPUS
374         bool
375
376 config TEGRA_SLOW_CSITE
377         bool "lower csite clock to 1 Mhz to reduce its power consumption"
378         default n
379         help
380           When enabled, csite will be running at 1 Mhz and the performance of
381           jtag, lauterbach and other debugger will be extremely slow.
382
383 config TEGRA_PREPOWER_WIFI
384         bool "Pre-power up WiFi "
385         default n
386         help
387           Pre-power up the on board WiFi chip
388
389 config TEGRA_DYNAMIC_CBUS
390         bool "Adjust dynamically graphics clocks cumulative dvfs table"
391
392 config TEGRA_DUAL_CBUS
393         bool "Use two plls (PLLC2/PLLC3) as graphics clocks sources"
394
395 config TEGRA_MIGRATE_CBUS_USERS
396         bool "Move cbus users between source plls to optimize cumulative dvfs"
397         depends on TEGRA_DYNAMIC_CBUS && TEGRA_DUAL_CBUS
398
399 config TEGRA_SKIN_THROTTLE
400         bool "Skin Temperature throttling"
401         depends on TEGRA_THERMAL_THROTTLE
402         depends on THERM_EST
403         default n
404         help
405           Enable throttling to control the temperature of the skin/case
406           of the device.
407
408 config ARCH_TEGRA_4GB_MEMORY
409         bool "Full 4GB physical memory support"
410         default n
411         help
412           Harmless to select this even if hardware does not support full
413           4GB physical memory.
414
415 config TEGRA_LP1_950
416         bool "LP1 low core voltage"
417         default n
418         depends on ARCH_TEGRA_3x_SOC
419         help
420                 Enable support for LP1 Core voltage to set to lowest
421 endif