regulator: qpnp-labibb-regulator: Program LAB_PRECHARGE_CTL unconditionally
Currently, LAB_PRECHARGE_CTL register is programmed if LAB is not ready to be enabled by IBB. LAB_PRECHARGE_CTL needs to be configured by the LAB/IBB driver irrespective of its previous setting. CRs-Fixed: 877370 Change-Id: Idb473ba0b063f010e89b669b79f79349ebfd0d59 Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
This commit is contained in:
parent
2013c04c33
commit
f343400c2b
|
@ -687,35 +687,6 @@ static int qpnp_lab_dt_init(struct qpnp_labibb *labibb,
|
|||
return rc;
|
||||
}
|
||||
|
||||
rc = of_property_read_u32(of_node, "qcom,qpnp-lab-max-precharge-time",
|
||||
&tmp);
|
||||
if (rc) {
|
||||
pr_err("get qcom,qpnp-lab-max-precharge-time failed, rc = %d\n",
|
||||
rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
for (val = 0; val < ARRAY_SIZE(lab_max_precharge_plan); val++)
|
||||
if (lab_max_precharge_plan[val] == tmp)
|
||||
break;
|
||||
|
||||
if (val == ARRAY_SIZE(lab_max_precharge_plan)) {
|
||||
pr_err("Invalid property in qcom,qpnp-lab-max-precharge-time\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (of_property_read_bool(of_node,
|
||||
"qcom,qpnp-lab-max-precharge-enable"))
|
||||
val |= LAB_PRECHARGE_CTL_EN;
|
||||
|
||||
rc = qpnp_labibb_write(labibb, labibb->lab_base +
|
||||
REG_LAB_PRECHARGE_CTL, &val, 1);
|
||||
if (rc) {
|
||||
pr_err("qpnp_lab_dt_init write register %x failed rc = %d\n",
|
||||
REG_LAB_PRECHARGE_CTL, rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
rc = of_property_read_u32(of_node, "qcom,qpnp-lab-init-voltage",
|
||||
&(labibb->lab_vreg.curr_volt));
|
||||
if (rc) {
|
||||
|
@ -1033,6 +1004,7 @@ static int register_qpnp_lab_regulator(struct qpnp_labibb *labibb,
|
|||
struct regulator_desc *rdesc;
|
||||
struct regulator_config cfg = {};
|
||||
u8 ibb_en_rdy_val, val;
|
||||
u32 tmp;
|
||||
|
||||
if (!of_node) {
|
||||
dev_err(labibb->dev, "qpnp lab regulator device tree node is missing\n");
|
||||
|
@ -1102,6 +1074,35 @@ static int register_qpnp_lab_regulator(struct qpnp_labibb *labibb,
|
|||
return rc;
|
||||
}
|
||||
|
||||
rc = of_property_read_u32(of_node, "qcom,qpnp-lab-max-precharge-time",
|
||||
&tmp);
|
||||
if (rc) {
|
||||
pr_err("get qcom,qpnp-lab-max-precharge-time failed, rc = %d\n",
|
||||
rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
for (val = 0; val < ARRAY_SIZE(lab_max_precharge_plan); val++)
|
||||
if (lab_max_precharge_plan[val] == tmp)
|
||||
break;
|
||||
|
||||
if (val == ARRAY_SIZE(lab_max_precharge_plan)) {
|
||||
pr_err("Invalid property in qcom,qpnp-lab-max-precharge-time\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (of_property_read_bool(of_node,
|
||||
"qcom,qpnp-lab-max-precharge-enable"))
|
||||
val |= LAB_PRECHARGE_CTL_EN;
|
||||
|
||||
rc = qpnp_labibb_write(labibb, labibb->lab_base +
|
||||
REG_LAB_PRECHARGE_CTL, &val, 1);
|
||||
if (rc) {
|
||||
pr_err("qpnp_lab_dt_init write register %x failed rc = %d\n",
|
||||
REG_LAB_PRECHARGE_CTL, rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (ibb_en_rdy_val == LAB_IBB_EN_RDY_EN) {
|
||||
rc = qpnp_labibb_read(labibb, &val,
|
||||
labibb->lab_base + REG_LAB_LCD_AMOLED_SEL, 1);
|
||||
|
|
Loading…
Reference in New Issue