static int pil_msa_pbl_make_proxy_votes(struct pil_desc *pil) { int ret; struct q6v5_data *drv = container_of(pil, struct q6v5_data, desc); ret = regulator_set_voltage(drv->vreg_mx, VDD_MSS_UV, MAX_VDD_MX_UV); if (ret) { dev_err(pil->dev, "Failed to request vreg_mx voltage\n"); return ret; } ret = regulator_enable(drv->vreg_mx); if (ret) { dev_err(pil->dev, "Failed to enable vreg_mx\n"); regulator_set_voltage(drv->vreg_mx, 0, MAX_VDD_MX_UV); return ret; } ret = pil_q6v5_make_proxy_votes(pil); if (ret) { regulator_disable(drv->vreg_mx); regulator_set_voltage(drv->vreg_mx, 0, MAX_VDD_MX_UV); } return ret; }
int pil_mss_make_proxy_votes(struct pil_desc *pil) { int ret; struct q6v5_data *drv = container_of(pil, struct q6v5_data, desc); int uv = 0; ret = of_property_read_u32(pil->dev->of_node, "vdd_mx-uV", &uv); if (ret) { dev_err(pil->dev, "missing vdd_mx-uV property\n"); return ret; } ret = regulator_set_voltage(drv->vreg_mx, uv, INT_MAX); if (ret) { dev_err(pil->dev, "Failed to request vreg_mx voltage\n"); return ret; } ret = regulator_enable(drv->vreg_mx); if (ret) { dev_err(pil->dev, "Failed to enable vreg_mx\n"); regulator_set_voltage(drv->vreg_mx, 0, INT_MAX); return ret; } ret = pil_q6v5_make_proxy_votes(pil); if (ret) { regulator_disable(drv->vreg_mx); regulator_set_voltage(drv->vreg_mx, 0, INT_MAX); } return ret; }