/* ------------------------------------------------------------------------*//** * @FUNCTION voltdm54xx_voltage_get * @BRIEF find the current supply voltage of a domain * @RETURNS supply voltage in case of success (>= 0.0) * OMAPCONF_ERR_ARG * OMAPCONF_ERR_CPU * OMAPCONF_ERR_REG_ACCESS * OMAPCONF_ERR_NOT_AVAILABLE * @param[in] id: valid voltage domain ID * @DESCRIPTION find the current supply voltage of a domain, * taking care of the voltage domain state * (ON/ON_LP/RET/OFF) * NB: use PRCM VP VOLTAGE register to retrieve ON voltage. * Hence SR/VP/VC have to be at least initialized * (SR could be disabled) *//*------------------------------------------------------------------------ */ double voltdm54xx_voltage_get(voltdm54xx_id id) { double volt; CHECK_CPU(54xx, (double) OMAPCONF_ERR_CPU); CHECK_ARG_LESS_THAN(id, VDD54XX_ID_MAX, (double) OMAPCONF_ERR_ARG); switch (id) { case VDD54XX_WKUP: return (double) OMAPCONF_ERR_NOT_AVAILABLE; case VDD54XX_MPU: volt = smps_voltage_get(PMIC_SMPS_MPU); break; case VDD54XX_MM: volt = smps_voltage_get(PMIC_SMPS_MM); break; case VDD54XX_CORE: volt = smps_voltage_get(PMIC_SMPS_CORE); break; default: return (double) OMAPCONF_ERR_ARG; } dprintf("%s(%s): volt=%lfV\n", __func__, voltdm54xx_name_get(id), volt); return volt; }
/* ------------------------------------------------------------------------*//** * @FUNCTION voltdm_am335x_voltage_get * @BRIEF find the current supply voltage of a domain * @RETURNS supply voltage in case of success (>= 0.0) * OMAPCONF_ERR_ARG * OMAPCONF_ERR_CPU * OMAPCONF_ERR_REG_ACCESS * OMAPCONF_ERR_NOT_AVAILABLE * @param[in] id: valid voltage domain ID * @DESCRIPTION find the current supply voltage of a domain, * taking care of the voltage domain state * (ON/ON_LP/RET/OFF) * NB: use PRCM VP VOLTAGE register to retrieve ON voltage. * Hence SR/VP/VC have to be at least initialized * (SR could be disabled) *//*------------------------------------------------------------------------ */ double voltdm_am335x_voltage_get(voltdm_am335x_id id) { double volt; CHECK_ARG_LESS_THAN(id, VDD_AM335X_ID_MAX, (double) OMAPCONF_ERR_ARG); switch (id) { case VDD_AM335X_CORE: volt = smps_voltage_get(PMIC_SMPS_CORE); break; case VDD_AM335X_MPU: volt = smps_voltage_get(PMIC_SMPS_MPU); break; case VDD_AM335X_RTC: volt = smps_voltage_get(PMIC_SMPS_ID_MAX); break; default: return (double) OMAPCONF_ERR_ARG; } dprintf("%s(%s): volt=%lfV\n", __func__, voltdm_am335x_name_get(id), volt); return volt; }