leds: qpnp-wled: enable OVP irq properly in WLED driver
Enable OVP irq properly in WLED driver only when WLED state is changed to ON and ovp_irq support is enabled. Plus, disable the ovp_irq before dis/enabling the WLED module by writing to QPNP_WLED_INT_EN_CLR WLED register. Change-Id: I75fa040c6e6f0e6ee40ec3e931c654f2c27ffcaf Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
This commit is contained in:
parent
322bf4d337
commit
00424d93a7
|
@ -33,6 +33,7 @@
|
|||
|
||||
/* ctrl registers */
|
||||
#define QPNP_WLED_INT_EN_SET(b) (b + 0x15)
|
||||
#define QPNP_WLED_INT_EN_CLR(b) (b + 0x16)
|
||||
#define QPNP_WLED_EN_REG(b) (b + 0x46)
|
||||
#define QPNP_WLED_FDBK_OP_REG(b) (b + 0x48)
|
||||
#define QPNP_WLED_VREF_REG(b) (b + 0x49)
|
||||
|
@ -101,7 +102,6 @@
|
|||
#define QPNP_WLED_OVP_31000_MV 31000
|
||||
#define QPNP_WLED_TEST4_EN_VREF_UP 0x32
|
||||
#define QPNP_WLED_TEST4_EN_IIND_UP 0x1
|
||||
#define QPNP_WLED_INT_EN_SET_OVP_DIS 0x00
|
||||
#define QPNP_WLED_INT_EN_SET_OVP_EN 0x02
|
||||
#define QPNP_WLED_OVP_FLT_SLEEP_US 10
|
||||
|
||||
|
@ -417,9 +417,9 @@ static int qpnp_wled_module_en(struct qpnp_wled *wled,
|
|||
|
||||
/* disable OVP fault interrupt */
|
||||
if (state) {
|
||||
reg = QPNP_WLED_INT_EN_SET_OVP_DIS;
|
||||
reg = QPNP_WLED_INT_EN_SET_OVP_EN;
|
||||
rc = qpnp_wled_write_reg(wled, ®,
|
||||
QPNP_WLED_INT_EN_SET(base_addr));
|
||||
QPNP_WLED_INT_EN_CLR(base_addr));
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ static int qpnp_wled_module_en(struct qpnp_wled *wled,
|
|||
return rc;
|
||||
|
||||
/* enable OVP fault interrupt */
|
||||
if (state) {
|
||||
if (state && (wled->ovp_irq > 0)) {
|
||||
udelay(QPNP_WLED_OVP_FLT_SLEEP_US);
|
||||
reg = QPNP_WLED_INT_EN_SET_OVP_EN;
|
||||
rc = qpnp_wled_write_reg(wled, ®,
|
||||
|
|
Loading…
Reference in New Issue