static int qpnp_wled_enable(struct qpnp_wled *wled, uint16_t base_addr, bool state) { uint8_t reg; reg = pm8x41_wled_reg_read( QPNP_WLED_MODULE_EN_REG(base_addr)); reg &= QPNP_WLED_MODULE_EN_MASK; reg |= (state << QPNP_WLED_MODULE_EN_SHIFT); pm8x41_wled_reg_write(QPNP_WLED_MODULE_EN_REG(base_addr), reg); return 0; }
static int qpnp_wled_ibb_swire_rdy(struct qpnp_wled *wled, uint16_t base_addr, bool state) { uint8_t reg; reg = pm8x41_wled_reg_read( QPNP_WLED_MODULE_EN_REG(base_addr)); /* Do not enable IBB module when SWIRE ready is set */ reg &= ~(QPNP_IBB_SWIRE_RDY_MASK | QPNP_IBB_MODULE_EN_MASK); reg |= (state << QPNP_IBB_SWIRE_RDY_SHIFT); pm8x41_wled_reg_write(QPNP_WLED_MODULE_EN_REG(base_addr), reg); return 0; }
static int qpnp_wled_module_en(struct qpnp_wled *wled, u16 base_addr, bool state) { int rc; u8 reg; rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_MODULE_EN_REG(base_addr)); if (rc < 0) return rc; reg &= QPNP_WLED_MODULE_EN_MASK; reg |= (state << QPNP_WLED_MODULE_EN_SHIFT); rc = qpnp_wled_write_reg(wled, ®, QPNP_WLED_MODULE_EN_REG(base_addr)); if (rc) return rc; return 0; }