static void msm_sensor_misc_regulator( struct msm_sensor_ctrl_t *sctrl, uint32_t enable) { int32_t rc = 0; if (enable) { sctrl->misc_regulator = (void *)rpm_regulator_get( &sctrl->pdev->dev, sctrl->sensordata->misc_regulator); if (sctrl->misc_regulator) { rc = rpm_regulator_set_mode(sctrl->misc_regulator, RPM_REGULATOR_MODE_HPM); if (rc < 0) { pr_err("%s: Failed to set for rpm regulator on %s: %d\n", __func__, sctrl->sensordata->misc_regulator, rc); rpm_regulator_put(sctrl->misc_regulator); } } else { pr_err("%s: Failed to vote for rpm regulator on %s: %d\n", __func__, sctrl->sensordata->misc_regulator, rc); } } else { if (sctrl->misc_regulator) { rc = rpm_regulator_set_mode( (struct rpm_regulator *)sctrl->misc_regulator, RPM_REGULATOR_MODE_AUTO); if (rc < 0) pr_err("%s: Failed to set for rpm regulator on %s: %d\n", __func__, sctrl->sensordata->misc_regulator, rc); rpm_regulator_put(sctrl->misc_regulator); } } }
static void oppo_config_sns_reg_release(struct work_struct *work) { int ret; pr_info("Releasing sensor regulator\n"); if (sns_reg) { ret = rpm_regulator_disable(sns_reg); if (ret) pr_err("8941_l18 rpm_regulator_disable failed (%d)\n", ret); rpm_regulator_put(sns_reg); sns_reg = 0; } }
static int psm_reg_init(struct platform_device *pdev) { int ret = 0; int i = 0; int j = 0; for (i = 0; i < psm_rails_cnt; i++) { psm_rails[i].reg = rpm_regulator_get(&pdev->dev, psm_rails[i].name); if (IS_ERR_OR_NULL(psm_rails[i].reg)) { ret = PTR_ERR(psm_rails[i].reg); if (ret != -EPROBE_DEFER) { pr_err("%s, could not get rpm regulator: %s\n", psm_rails[i].name, __func__); psm_rails[i].reg = NULL; goto psm_reg_exit; } return ret; } /* Apps default vote for PWM mode */ psm_rails[i].init = PMIC_PWM_MODE; ret = rpm_regulator_set_mode(psm_rails[i].reg, psm_rails[i].init); if (ret) { pr_err("%s: Cannot set PMIC PWM mode\n", __func__); return ret; } else psm_rails[i].mode = PMIC_PWM_MODE; } return ret; psm_reg_exit: if (ret) { for (j = 0; j < i; j++) { if (psm_rails[j].reg != NULL) rpm_regulator_put(psm_rails[j].reg); } } return ret; }