arm: tegra: la: Add latency allowance support for T11x.
[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_LATENCY_ALLOWANCE if !TEGRA_FPGA_PLATFORM
81         select TEGRA_LATENCY_ALLOWANCE_SCALING if !TEGRA_FPGA_PLATFORM
82         select TEGRA_LP2_CPU_TIMER if HAVE_ARM_TWD && !TEGRA_RAIL_OFF_MULTIPLE_CPUS
83         select USB_ARCH_HAS_EHCI if USB_SUPPORT
84         select USB_ULPI if USB_PHY
85         select USB_ULPI_VIEWPORT if USB_PHY
86         help
87           Support for NVIDIA Tegra T30 processor family, based on the
88           ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
89
90 config ARCH_TEGRA_11x_SOC
91         bool "Tegra 11x family SOC"
92         select ARCH_REQUIRE_GPIOLIB
93         select ARCH_TEGRA_4GB_MEMORY
94         select ARCH_TEGRA_HAS_CL_DVFS
95         select ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
96         select ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
97         select ARM_ARCH_TIMER
98         select ARM_CPU_SUSPEND if PM
99         select ARM_GIC
100         select ARM_L1_CACHE_SHIFT_6
101         select CPU_V7
102         select EDP_FRAMEWORK
103         select REPORT_PRESENT_CPUS if TEGRA_AUTO_HOTPLUG
104         select TEGRA_DUAL_CBUS
105         select TEGRA_DYNAMIC_CBUS
106         select TEGRA_LATENCY_ALLOWANCE if !TEGRA_FPGA_PLATFORM
107         select TEGRA_LP2_CPU_TIMER if !TEGRA_RAIL_OFF_MULTIPLE_CPUS
108         select USB_ARCH_HAS_EHCI if USB_SUPPORT
109         select USB_EHCI_TEGRA if USB_SUPPORT
110         select USB_ULPI if USB_SUPPORT
111         select USB_ULPI_VIEWPORT if USB_SUPPORT
112         help
113           Support for NVIDIA Tegra 11x family of SoCs, based upon the
114           ARM Cortex-A15MP CPU
115
116 config ARCH_TEGRA_HAS_ARM_SCU
117         bool
118
119 config ARCH_TEGRA_HAS_DUAL_3D
120         bool
121
122 config ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
123         bool
124
125 config ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE
126         bool
127
128 config ARCH_TEGRA_HAS_PCIE
129         bool
130
131 config ARCH_TEGRA_HAS_SATA
132         bool
133
134 config ARCH_TEGRA_HAS_CL_DVFS
135         bool
136
137 config TEGRA_PCI
138         bool "PCIe host controller driver"
139         select PCI
140         depends on ARCH_TEGRA_HAS_PCIE
141         help
142           Adds PCIe Host controller driver for tegra based systems
143
144 config TEGRA_AHB
145         bool "Enable AHB driver for NVIDIA Tegra SoCs"
146         default y
147         help
148           Adds AHB configuration functionality for NVIDIA Tegra SoCs,
149           which controls AHB bus master arbitration and some
150           performance parameters(priority, prefech size).
151
152 comment "Tegra board type"
153
154 config MACH_CURACAO
155        bool "Curacao board"
156        depends on ARCH_TEGRA_11x_SOC
157        select MACH_HAS_SND_SOC_TEGRA_WM8903 if SND_SOC
158        select TEGRA_FPGA_PLATFORM
159        help
160          Support for NVIDIA Curacao FPGA development platform
161
162
163 config MACH_DALMORE
164        bool "Dalmore board"
165        depends on !ARCH_TEGRA_2x_SOC
166        select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
167        select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
168        help
169          Support for NVIDIA DALMORE development platform
170
171 config MACH_TEGRA_PLUTO
172        bool "Pluto board"
173        depends on !ARCH_TEGRA_2x_SOC
174        help
175          Support for NVIDIA PLUTO development platform
176
177 choice
178        prompt "Tegra platform type"
179        default TEGRA_SILICON_PLATFORM
180
181 config TEGRA_SILICON_PLATFORM
182         bool "Silicon"
183         help
184           This enables support for a Tegra silicon platform.
185
186 config TEGRA_SIMULATION_PLATFORM
187         bool "Simulation"
188         help
189           This enables support for a Tegra simulation platform.
190           Select this only if you are an NVIDIA developer working
191           on a simulation platform.
192
193 config TEGRA_FPGA_PLATFORM
194         bool "FPGA"
195         help
196           This enables support for a Tegra FPGA platform.
197           Select this only if you are an NVIDIA developer working
198           on a FPGA platform.
199 endchoice
200
201 config TEGRA_FIQ_DEBUGGER
202         bool "Enable the FIQ serial debugger on Tegra"
203         default n
204         select FIQ_DEBUGGER
205         help
206           Enables the FIQ serial debugger on Tegra
207
208 config TEGRA_EMC_SCALING_ENABLE
209         bool "Enable scaling the memory frequency"
210         depends on TEGRA_SILICON_PLATFORM
211         default n
212
213 config TEGRA_CPU_DVFS
214         bool "Enable voltage scaling on Tegra CPU"
215         depends on TEGRA_SILICON_PLATFORM
216         default y
217
218 config TEGRA_CORE_DVFS
219         bool "Enable voltage scaling on Tegra core"
220         depends on TEGRA_SILICON_PLATFORM
221         depends on TEGRA_CPU_DVFS
222         default y
223
224 config TEGRA_AVP_KERNEL_ON_MMU
225         bool "Use AVP MMU to relocate AVP kernel"
226         depends on ARCH_TEGRA_2x_SOC
227         default y
228         help
229           Use AVP MMU to relocate AVP kernel (nvrm_avp.bin).
230
231 config TEGRA_AVP_KERNEL_ON_SMMU
232         bool "Use SMMU to relocate AVP kernel"
233         depends on TEGRA_IOVMM_SMMU
234         default y
235         help
236           Use SMMU to relocate AVP kernel (nvrm_avp.bin).
237
238 config TEGRA_ARB_SEMAPHORE
239         bool
240
241 config TEGRA_THERMAL
242         bool "Enable Tegra Thermal Framework"
243         depends on ARCH_TEGRA_3x_SOC
244         depends on THERMAL
245         default y
246
247 config TEGRA_THERMAL_THROTTLE
248         bool "Enable throttling of CPU speed on overtemp"
249         depends on TEGRA_SILICON_PLATFORM
250         depends on CPU_FREQ
251         depends on TEGRA_THERMAL
252         default y
253         help
254           Also requires enabling a temperature sensor such as NCT1008.
255
256 config TEGRA_CLOCK_DEBUG_WRITE
257         bool "Enable debugfs write access to clock tree"
258         depends on DEBUG_FS
259         default n
260
261 config TEGRA_CLUSTER_CONTROL
262         bool
263         depends on ARCH_TEGRA_HAS_DUAL_CPU_CLUSTERS
264         default y if PM_SLEEP
265
266 config TEGRA_CPUQUIET
267         bool
268
269 config TEGRA_AUTO_HOTPLUG
270         bool "Enable automatic CPU hot-plugging"
271         depends on HOTPLUG_CPU && CPU_FREQ && !ARCH_CPU_PROBE_RELEASE && !ARCH_TEGRA_2x_SOC
272         select TEGRA_CPUQUIET
273         default y
274         help
275           This option enables turning CPUs off/on and switching tegra
276           high/low power CPU clusters automatically, corresponding to
277           CPU frequency scaling.
278
279 config TEGRA_MC_EARLY_ACK
280         bool "Enable early acknowledgement from mermory controller"
281         depends on ARCH_TEGRA_3x_SOC
282         default y
283         help
284           This option enables early acknowledgement from memory
285           controller. This feature is used to improve CPU memory
286           write performance.
287
288 config TEGRA_EDP_LIMITS
289         bool "Enforce electrical design limits"
290         depends on TEGRA_SILICON_PLATFORM
291         depends on CPU_FREQ
292         depends on TEGRA_THERMAL
293         default y if ARCH_TEGRA_3x_SOC
294         default n
295         help
296           Limit maximum CPU frequency based on temperature and number
297           of on-line CPUs to keep CPU rail current within power supply
298           capabilities.
299
300 config TEGRA_EMC_TO_DDR_CLOCK
301         int "EMC to DDR clocks ratio"
302         default "2" if ARCH_TEGRA_2x_SOC
303         default "1"
304
305 config TEGRA_GADGET_BOOST_CPU_FREQ
306         int "Boost cpu frequency for tegra usb gadget (0-1300 mhz)"
307         range 0 1300
308         default 0
309         help
310           Devices need to boost frequency of CPU when they are connected
311           to host pc through usb cable for better performance. This value
312           is the amount of the frequency (in mhz) to be boosted. If it is
313           zero boosting frequency will not be enabled. This value will be
314           used only by usb gadget driver.
315
316 config TEGRA_DYNAMIC_PWRDET
317         bool "Enable dynamic activation of IO level auto-detection"
318         depends on TEGRA_SILICON_PLATFORM
319         default n
320         help
321           This option allows turning off tegra IO level auto-detection
322           when IO power is stable. If set auto-detection cells are active
323           only during power transitions, otherwise, the cells are active
324           always
325
326 config TEGRA_EDP_EXACT_FREQ
327         bool "Use maximum possible cpu frequency when EDP capping"
328         depends on TEGRA_EDP_LIMITS
329         default y
330         help
331           When enabled the cpu will run at the exact frequency
332           specified in the EDP table when EDP capping is applied; when
333           disabled the next lower cpufreq frequency will be used.
334
335 config TEGRA_USB_MODEM_POWER
336         bool "Enable tegra usb modem power management"
337         default n
338         help
339           This option enables support for out-of_band remote wakeup, selective
340           suspend and system suspend/resume.
341
342 config TEGRA_BB_XMM_POWER
343         bool "Enable power driver for XMM modem"
344         default n
345         help
346           Enables power driver which controls gpio signals to XMM modem.
347
348 config TEGRA_BB_XMM_POWER2
349         tristate "Enable power driver for XMM modem (flashless)"
350         default n
351         help
352           Enables power driver which controls gpio signals to XMM modem
353           (in flashless configuration).  User-mode application must
354           insert this LKM to initiate 2nd USB enumeration power sequence
355           - after modem software has been downloaded to flashless device.
356
357 config TEGRA_PLLM_RESTRICTED
358         bool "Restrict PLLM usage as module clock source"
359         depends on !ARCH_TEGRA_2x_SOC
360         default n
361         help
362           When enabled, PLLM usage may be restricted to modules with dividers
363           capable of dividing maximum PLLM frequency at minimum voltage. When
364           disabled, PLLM is used as a clock source with no restrictions (which
365           may effectively increase lower limit for core voltage).
366
367 config TEGRA_WDT_RECOVERY
368         bool "Enable suspend/resume watchdog recovery mechanism"
369         default n
370         help
371           Enables watchdog recovery mechanism to protect against
372           suspend/resume hangs.
373
374 config TEGRA_LP2_CPU_TIMER
375         bool
376
377 config TEGRA_RAIL_OFF_MULTIPLE_CPUS
378         bool
379
380 config TEGRA_SLOW_CSITE
381         bool "lower csite clock to 1 Mhz to reduce its power consumption"
382         default n
383         help
384           When enabled, csite will be running at 1 Mhz and the performance of
385           jtag, lauterbach and other debugger will be extremely slow.
386
387 config TEGRA_PREPOWER_WIFI
388         bool "Pre-power up WiFi "
389         default n
390         help
391           Pre-power up the on board WiFi chip
392
393 config TEGRA_DYNAMIC_CBUS
394         bool "Adjust dynamically graphics clocks cumulative dvfs table"
395
396 config TEGRA_DUAL_CBUS
397         bool "Use two plls (PLLC2/PLLC3) as graphics clocks sources"
398
399 config TEGRA_MIGRATE_CBUS_USERS
400         bool "Move cbus users between source plls to optimize cumulative dvfs"
401         depends on TEGRA_DYNAMIC_CBUS && TEGRA_DUAL_CBUS
402
403 config TEGRA_SKIN_THROTTLE
404         bool "Skin Temperature throttling"
405         depends on TEGRA_THERMAL_THROTTLE
406         depends on THERM_EST
407         default n
408         help
409           Enable throttling to control the temperature of the skin/case
410           of the device.
411
412 config ARCH_TEGRA_4GB_MEMORY
413         bool "Full 4GB physical memory support"
414         default n
415         help
416           Harmless to select this even if hardware does not support full
417           4GB physical memory.
418
419 config TEGRA_LP1_950
420         bool "LP1 low core voltage"
421         default n
422         depends on ARCH_TEGRA_3x_SOC
423         help
424                 Enable support for LP1 Core voltage to set to lowest
425
426 config TEGRA_LATENCY_ALLOWANCE
427         bool "Allow memory clients to configure latency allowance"
428         help
429           Latency allowance is a per-memory-client setting that tells the
430           memory controller how long it can ignore a request in favor of
431           others. In other words, It indicates how long a request from specific
432           memory client can wait before it is served.
433           Enabling this option allows memory clients configure the
434           latency allowance as per their bandwidth requirement.
435
436 config TEGRA_LATENCY_ALLOWANCE_SCALING
437         bool "Enable latency allowance scaling"
438         depends on TEGRA_LATENCY_ALLOWANCE
439         help
440           Enables latency allowance scaling, which enables scaling
441           programmed latency allowance values based on fifo threshold levels
442           set for for display and vi hardware.
443
444 endif