Index: arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_pmu_private.h |
diff --git a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_pmu_private.h b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_pmu_private.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..79c818d218386a2d417e8041c0df7b8f70b27c51 |
--- /dev/null |
+++ b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_pmu_private.h |
@@ -0,0 +1,149 @@ |
+/* |
+ * Copyright (c) 2007-2009 NVIDIA Corporation. |
+ * All rights reserved. |
+ * |
+ * Redistribution and use in source and binary forms, with or without |
+ * modification, are permitted provided that the following conditions are met: |
+ * |
+ * Redistributions of source code must retain the above copyright notice, |
+ * this list of conditions and the following disclaimer. |
+ * |
+ * Redistributions in binary form must reproduce the above copyright notice, |
+ * this list of conditions and the following disclaimer in the documentation |
+ * and/or other materials provided with the distribution. |
+ * |
+ * Neither the name of the NVIDIA Corporation nor the names of its contributors |
+ * may be used to endorse or promote products derived from this software |
+ * without specific prior written permission. |
+ * |
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
+ * POSSIBILITY OF SUCH DAMAGE. |
+ * |
+ */ |
+ |
+#ifndef INCLUDED_NVRM_PMU_PRIVATE_H |
+#define INCLUDED_NVRM_PMU_PRIVATE_H |
+ |
+#include "nvodm_query.h" |
+ |
+#ifdef __cplusplus |
+extern "C" |
+{ |
+#endif /* __cplusplus */ |
+ |
+// CPU rail lowering voltage delay (applicable only to the platforms |
+// with dedicated CPU rail) |
+#define NVRM_CPU_TO_CORE_DOWN_US (2000) |
+ |
+// Default voltage returned in environment with no PMU support |
+#define NVRM_NO_PMU_DEFAULT_VOLTAGE (1) |
+ |
+/** |
+ * Initializes RM PMU interface handle |
+ * |
+ * @param hRmDevice The RM device handle |
+ * |
+ * @return NvSuccess if initialization completed successfully |
+ * or one of common error codes on failure |
+ */ |
+NvError |
+NvRmPrivPmuInit(NvRmDeviceHandle hRmDevice); |
+ |
+/** |
+ * Enables PMU interrupt. |
+ * |
+ * @param hRmDevice The RM device handle |
+ */ |
+void NvRmPrivPmuInterruptEnable(NvRmDeviceHandle hRmDevice); |
+ |
+/** |
+ * Masks/Unmasks OMU interrupt |
+ * |
+ * @param hRmDevice The RM device handle |
+ * @param mask Set NV_TRUE to maks, and NV_FALSE to unmask PMU interrupt |
+ */ |
+void NvRmPrivPmuInterruptMask(NvRmDeviceHandle hRmDevice, NvBool mask); |
+ |
+/** |
+ * Deinitializes RM PMU interface |
+ * |
+ * @param hRmDevice The RM device handle |
+ */ |
+void |
+NvRmPrivPmuDeinit(NvRmDeviceHandle hRmDevice); |
+ |
+/** |
+ * Sets new voltage level for the specified PMU voltage rail. |
+ * Private interface for diagnostic mode only. |
+ * |
+ * @param hDevice The Rm device handle. |
+ * @param vddId The ODM-defined PMU rail ID. |
+ * @param MilliVolts The new voltage level to be set in millivolts (mV). |
+ * Set to ODM_VOLTAGE_OFF to turn off the target voltage. |
+ * @param pSettleMicroSeconds A pointer to the settling time in microseconds (uS), |
+ * which is the time for supply voltage to settle after this function |
+ * returns; this may or may not include PMU control interface transaction time, |
+ * depending on the ODM implementation. If null this parameter is ignored. |
+ * |
+ * @return NV_TRUE if successful, or NV_FALSE otherwise. |
+ */ |
+NvBool |
+NvRmPrivDiagPmuSetVoltage( |
+ NvRmDeviceHandle hDevice, |
+ NvU32 vddId, |
+ NvU32 MilliVolts, |
+ NvU32 * pSettleMicroSeconds); |
+ |
+/** |
+ * Turns PMU rail On/Off |
+ * |
+ * @param hRmDevice The RM device handle |
+ * @param NvRailId The reserved NV rail GUID |
+ * @param TurnOn Turn rail ON if True, or turn rail Off if False |
+ */ |
+void |
+NvRmPrivPmuRailControl( |
+ NvRmDeviceHandle hRmDevice, |
+ NvU64 NvRailId, |
+ NvBool TurnOn); |
+ |
+/** |
+ * Gets PMU rail voltage |
+ * |
+ * @param hRmDevice The RM device handle |
+ * @param NvRailId The reserved NV rail GUID |
+ * |
+ * @return PMU rail voltage in mv |
+ */ |
+NvU32 |
+NvRmPrivPmuRailGetVoltage( |
+ NvRmDeviceHandle hRmDevice, |
+ NvU64 NvRailId); |
+ |
+// Forward declarations for all chip-specific helper functions |
+ |
+/** |
+ * Sets polarity of dedicated SoC PMU interrupt input |
+ * |
+ * @param hRmDevice The RM device handle |
+ * @param Polarity PMU interrupt polarity to be set |
+ */ |
+void |
+NvRmPrivAp20SetPmuIrqPolarity( |
+ NvRmDeviceHandle hRmDevice, |
+ NvOdmInterruptPolarity Polarity); |
+ |
+#ifdef __cplusplus |
+} |
+#endif /* __cplusplus */ |
+ |
+#endif // INCLUDED_NVRM_PMU_PRIVATE_H |