static int pm_chg_ibatmax_set(struct pm8921_chg_chip *chip, int chg_current) { u8 temp; if (chg_current < PM8921_CHG_IBATMAX_MIN || chg_current > PM8921_CHG_IBATMAX_MAX) { pr_err("bad mA=%d asked to set\n", chg_current); return -EINVAL; } temp = (chg_current - PM8921_CHG_I_MIN_MA) / PM8921_CHG_I_STEP_MA; return pm_chg_masked_write(chip, CHG_IBAT_MAX, PM8921_CHG_I_MASK, temp); }
int pm8921_aud_set_s4_pwm(void) { int ret = 0; if(!the_chip) return -1; pr_info("%s: set s4 to pwm mode ++\n",__func__); ret = pm_chg_masked_write(the_chip, S4_CTRL_ADDR, S4_MODE_MASK, S4_PWM); pr_info("%s: set s4 to pwm mode --\n",__func__); return ret; }
static int pm_chg_iusbmax_set(struct pm8921_chg_chip *chip, int chg_current) { u8 temp; if (chg_current < PM8921_CHG_IUSB_MIN || chg_current > PM8921_CHG_IUSB_MAX) { pr_err("bad mA=%d asked to set\n", chg_current); return -EINVAL; } temp = chg_current << 2; return pm_chg_masked_write(chip, PBL_ACCESS2, PM8921_CHG_IUSB_MASK, temp); }
static int pm_chg_vbatdet_set(struct pm8921_chg_chip *chip, int voltage) { u8 temp; if (voltage < PM8921_CHG_VBATDET_MIN || voltage > PM8921_CHG_VBATDET_MAX) { pr_err("bad mV=%d asked to set\n", voltage); return -EINVAL; } temp = (voltage - PM8921_CHG_V_MIN_MV) / PM8921_CHG_V_STEP_MV; pr_debug("voltage=%d setting %02x\n", voltage, temp); return pm_chg_masked_write(chip, CHG_VBAT_DET, PM8921_CHG_V_MASK, temp); }
static int pm_chg_disable_wd(struct pm8921_chg_chip *chip) { /* writing 0 to the wd timer disables it */ return pm_chg_masked_write(chip, CHG_TWDOG, PM8921_CHG_WD_MASK, 0); }
static int pm_chg_charge_dis(struct pm8921_chg_chip *chip, int disable) { return pm_chg_masked_write(chip, CHG_CNTRL, CHG_CHARGE_DIS_BIT, disable ? CHG_CHARGE_DIS_BIT : 0); }
static int pm_chg_auto_enable(struct pm8921_chg_chip *chip, int enable) { return pm_chg_masked_write(chip, CHG_CNTRL_3, CHG_EN_BIT, enable ? CHG_EN_BIT : 0); }
static int pm_chg_usb_suspend_enable(struct pm8921_chg_chip *chip, int enable) { return pm_chg_masked_write(chip, CHG_CNTRL_3, CHG_USB_SUSPEND_BIT, enable ? CHG_USB_SUSPEND_BIT : 0); }