summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/imx-common/sci/svc/pm/api.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/include/asm/imx-common/sci/svc/pm/api.h')
-rw-r--r--arch/arm/include/asm/imx-common/sci/svc/pm/api.h39
1 files changed, 35 insertions, 4 deletions
diff --git a/arch/arm/include/asm/imx-common/sci/svc/pm/api.h b/arch/arm/include/asm/imx-common/sci/svc/pm/api.h
index fc68f86944..0d782ef0c2 100644
--- a/arch/arm/include/asm/imx-common/sci/svc/pm/api.h
+++ b/arch/arm/include/asm/imx-common/sci/svc/pm/api.h
@@ -14,6 +14,8 @@
*
* Module for the Power Management (PM) service.
*
+ * @includedoc pm/details.dox
+ *
* @{
*/
@@ -31,10 +33,10 @@
* @name Defines for type widths
*/
/*@{*/
-#define SC_PM_POWER_MODE_W 2 /*!< Width of sc_pm_power_mode_t */
-#define SC_PM_CLOCK_MODE_W 3 /*!< Width of sc_pm_clock_mode_t */
-#define SC_PM_RESET_TYPE_W 2 /*!< Width of sc_pm_reset_type_t */
-#define SC_PM_RESET_REASON_W 3 /*!< Width of sc_pm_reset_reason_t */
+#define SC_PM_POWER_MODE_W 2U /*!< Width of sc_pm_power_mode_t */
+#define SC_PM_CLOCK_MODE_W 3U /*!< Width of sc_pm_clock_mode_t */
+#define SC_PM_RESET_TYPE_W 2U /*!< Width of sc_pm_reset_type_t */
+#define SC_PM_RESET_REASON_W 3U /*!< Width of sc_pm_reset_reason_t */
/*@}*/
/*!
@@ -286,6 +288,9 @@ sc_err_t sc_pm_get_sys_power_mode(sc_ipc_t ipc, sc_rm_pt_t pt,
* - SC_ERR_NOACCESS if caller's partition is not the resource owner
* or parent of the owner
*
+ * Resources must be at SC_PM_PW_MODE_LP mode or higher to access them,
+ * otherwise the master will get a bus error or hang.
+ *
* This function will record the individual resource power mode
* and change it if the requested mode is lower than or equal to the
* partition power mode set with sc_pm_set_partition_power_mode().
@@ -308,6 +313,32 @@ sc_err_t sc_pm_set_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
sc_pm_power_mode_t mode);
/*!
+* This function sets the power mode for all the resources owned
+* by a child partition.
+*
+* @param[in] ipc IPC handle
+* @param[in] pt handle of child partition
+* @param[in] mode power mode to apply
+* @param[in] exclude resource to exclude
+*
+* @return Returns an error code (SC_ERR_NONE = success).
+*
+* Return errors:
+* - SC_ERR_PARM if invalid partition or mode,
+* - SC_ERR_NOACCESS if caller's partition is not the parent
+* of \a pt
+*
+* This functions loops through all the resources owned by \a pt
+* and sets the power mode to \a mode. It will skip setting
+* \a exclude (SC_R_LAST to skip none).
+*
+* This function can only be called by the parent. It is used to
+* implement some aspects of virtualization.
+*/
+sc_err_t sc_pm_set_resource_power_mode_all(sc_ipc_t ipc,
+ sc_rm_pt_t pt, sc_pm_power_mode_t mode, sc_rsrc_t exclude);
+
+/*!
* This function gets the power mode of a resource.
*
* @param[in] ipc IPC handle