/* ------------------------------------------------------------------------*//** * @FUNCTION pwrdm54xx_target_logic_ret_state_get * @BRIEF return logic target state for this power domain when * domain is RET * @RETURNS power domain logic state when domain is RET: * PWRDM_OFF_STATE or PWRDM_RET_STATE * PWRDM_STATE_MAX in case of error * @param[in] id: valid power domain ID * @DESCRIPTION return logic target state for this power domain when * domain is RET *//*------------------------------------------------------------------------ */ pwrdm_state pwrdm54xx_target_logic_ret_state_get(pwrdm54xx_id id) { reg *pm_pwrstctrl; if (!cpu_is_omap54xx()) { fprintf(stderr, "%s(): CPU != 54XX\n", __func__); return PWRDM_STATE_MAX; } CHECK_ARG_LESS_THAN(id, PWRDM54XX_ID_MAX, PWRDM_STATE_MAX); if (!pwrdm54xx_has_logic_ret_state_ctrl_bit(id)) return PWRDM_STATE_MAX; /* Retrieve PM_xyz_PWRSTCTRL pointer */ pm_pwrstctrl = pwrdm54xx_pwrstctrl_reg_get(id); if (pm_pwrstctrl == NULL) return PWRDM_STATE_MAX; else /* Retrieve logic target state */ return pwrdm_target_logic_ret_state_get(pm_pwrstctrl); }
/* ------------------------------------------------------------------------*//** * @FUNCTION powerdm_target_logic_ret_state_get * @BRIEF return the programmed target logic retention state * of a given power domain * @RETURNS programmed target logic retention state on success * PWRDM_STATE_MAX in case of error * @param[in] powerdm: power domain name * @DESCRIPTION return the programmed target logic retention state * of a given power domain *//*------------------------------------------------------------------------ */ pwrdm_state powerdm_target_logic_ret_state_get(const char *powerdm) { reg *pm_pwrstctrl; pwrdm_state state; CHECK_NULL_ARG(powerdm, PWRDM_STATE_MAX); if (!powerdm_has_logic_ret_state_ctrl_bit(powerdm)) { dprintf("%s(%s): domain doesn't have RET state control bit.\n", __func__, powerdm); return PWRDM_STATE_MAX; } pm_pwrstctrl = powerdm_pwrstctrl_reg_get(powerdm); if (pm_pwrstctrl == NULL) { dprintf("%s(%s): PM_PWRSTCTRL==NULL!\n", __func__, powerdm); return PWRDM_STATE_MAX; } state = pwrdm_target_logic_ret_state_get(pm_pwrstctrl); dprintf("%s(%s) = %s\n", __func__, powerdm, pwrdm_state_name_get(state)); return state; }