Loading Documentation/devicetree/bindings/leds/leds-qpnp-wled.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ Optional properties for WLED: are "wled1", "wled2", "wled3", "wled4" and "auto". default is "auto". - qcom,vref-mv : maximum reference voltage in mv. default is 350. - qcom,switch-freq-khz : switch frequency in khz. default is 800. - qcom,ovp-mv : over voltage protection value in mv. default is 17800. - qcom,ovp-mv : Over voltage protection threshold in mV. Default is 29500. - qcom,ilim-ma : maximum current limiter in ma. default is 980. - qcom,boost-duty-ns : maximum boost duty cycle in ns. default is 104. - qcom,mod-freq-khz : modulation frequency in khz. default is 9600. Loading drivers/leds/leds-qpnp-wled.c +25 −28 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ #define QPNP_WLED_SWITCH_FREQ_800_KHZ 800 #define QPNP_WLED_SWITCH_FREQ_1600_KHZ 1600 #define QPNP_WLED_SWITCH_FREQ_OVERWRITE 0x80 #define QPNP_WLED_OVP_MASK 0xFC #define QPNP_WLED_OVP_MASK GENMASK(1, 0) #define QPNP_WLED_OVP_17800_MV 17800 #define QPNP_WLED_OVP_19400_MV 19400 #define QPNP_WLED_OVP_29500_MV 29500 Loading Loading @@ -1100,7 +1100,8 @@ static int qpnp_wled_config(struct qpnp_wled *wled) if (rc) return rc; /* Configure the OVP register */ /* Configure the OVP register only if display type is not AMOLED */ if (!wled->disp_type_amoled) { if (wled->ovp_mv <= QPNP_WLED_OVP_17800_MV) { wled->ovp_mv = QPNP_WLED_OVP_17800_MV; temp = 3; Loading @@ -1115,16 +1116,12 @@ static int qpnp_wled_config(struct qpnp_wled *wled) temp = 0; } rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc < 0) return rc; reg &= QPNP_WLED_OVP_MASK; reg |= temp; rc = qpnp_wled_write_reg(wled, ®, reg = (u8)temp; rc = qpnp_wled_masked_write_reg(wled, QPNP_WLED_OVP_MASK, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc) return rc; } rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_CTRL_SPARE_REG(wled->ctrl_base)); Loading @@ -1150,7 +1147,7 @@ static int qpnp_wled_config(struct qpnp_wled *wled) /* Update WLED_OVP register based on desired target voltage */ reg = qpnp_wled_ovp_reg_settings[i]; rc = qpnp_wled_write_reg(wled, ®, rc = qpnp_wled_masked_write_reg(wled, QPNP_WLED_OVP_MASK, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc) return rc; Loading Loading @@ -1574,7 +1571,7 @@ static int qpnp_wled_parse_dt(struct qpnp_wled *wled) if (!rc) { wled->ovp_mv = temp_val; } else if (rc != -EINVAL) { dev_err(&spmi->dev, "Unable to read vref\n"); dev_err(&spmi->dev, "Unable to read ovp\n"); return rc; } Loading Loading
Documentation/devicetree/bindings/leds/leds-qpnp-wled.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ Optional properties for WLED: are "wled1", "wled2", "wled3", "wled4" and "auto". default is "auto". - qcom,vref-mv : maximum reference voltage in mv. default is 350. - qcom,switch-freq-khz : switch frequency in khz. default is 800. - qcom,ovp-mv : over voltage protection value in mv. default is 17800. - qcom,ovp-mv : Over voltage protection threshold in mV. Default is 29500. - qcom,ilim-ma : maximum current limiter in ma. default is 980. - qcom,boost-duty-ns : maximum boost duty cycle in ns. default is 104. - qcom,mod-freq-khz : modulation frequency in khz. default is 9600. Loading
drivers/leds/leds-qpnp-wled.c +25 −28 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ #define QPNP_WLED_SWITCH_FREQ_800_KHZ 800 #define QPNP_WLED_SWITCH_FREQ_1600_KHZ 1600 #define QPNP_WLED_SWITCH_FREQ_OVERWRITE 0x80 #define QPNP_WLED_OVP_MASK 0xFC #define QPNP_WLED_OVP_MASK GENMASK(1, 0) #define QPNP_WLED_OVP_17800_MV 17800 #define QPNP_WLED_OVP_19400_MV 19400 #define QPNP_WLED_OVP_29500_MV 29500 Loading Loading @@ -1100,7 +1100,8 @@ static int qpnp_wled_config(struct qpnp_wled *wled) if (rc) return rc; /* Configure the OVP register */ /* Configure the OVP register only if display type is not AMOLED */ if (!wled->disp_type_amoled) { if (wled->ovp_mv <= QPNP_WLED_OVP_17800_MV) { wled->ovp_mv = QPNP_WLED_OVP_17800_MV; temp = 3; Loading @@ -1115,16 +1116,12 @@ static int qpnp_wled_config(struct qpnp_wled *wled) temp = 0; } rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc < 0) return rc; reg &= QPNP_WLED_OVP_MASK; reg |= temp; rc = qpnp_wled_write_reg(wled, ®, reg = (u8)temp; rc = qpnp_wled_masked_write_reg(wled, QPNP_WLED_OVP_MASK, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc) return rc; } rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_CTRL_SPARE_REG(wled->ctrl_base)); Loading @@ -1150,7 +1147,7 @@ static int qpnp_wled_config(struct qpnp_wled *wled) /* Update WLED_OVP register based on desired target voltage */ reg = qpnp_wled_ovp_reg_settings[i]; rc = qpnp_wled_write_reg(wled, ®, rc = qpnp_wled_masked_write_reg(wled, QPNP_WLED_OVP_MASK, ®, QPNP_WLED_OVP_REG(wled->ctrl_base)); if (rc) return rc; Loading Loading @@ -1574,7 +1571,7 @@ static int qpnp_wled_parse_dt(struct qpnp_wled *wled) if (!rc) { wled->ovp_mv = temp_val; } else if (rc != -EINVAL) { dev_err(&spmi->dev, "Unable to read vref\n"); dev_err(&spmi->dev, "Unable to read ovp\n"); return rc; } Loading