Lines Matching defs:bq

290 	int (*bq256xx_get_ichg)(struct bq256xx_device *bq);
291 int (*bq256xx_get_iindpm)(struct bq256xx_device *bq);
292 int (*bq256xx_get_vbatreg)(struct bq256xx_device *bq);
293 int (*bq256xx_get_iterm)(struct bq256xx_device *bq);
294 int (*bq256xx_get_iprechg)(struct bq256xx_device *bq);
295 int (*bq256xx_get_vindpm)(struct bq256xx_device *bq);
297 int (*bq256xx_set_ichg)(struct bq256xx_device *bq, int ichg);
298 int (*bq256xx_set_iindpm)(struct bq256xx_device *bq, int iindpm);
299 int (*bq256xx_set_vbatreg)(struct bq256xx_device *bq, int vbatreg);
300 int (*bq256xx_set_iterm)(struct bq256xx_device *bq, int iterm);
301 int (*bq256xx_set_iprechg)(struct bq256xx_device *bq, int iprechg);
302 int (*bq256xx_set_vindpm)(struct bq256xx_device *bq, int vindpm);
303 int (*bq256xx_set_charge_type)(struct bq256xx_device *bq, int type);
304 int (*bq256xx_set_ts_ignore)(struct bq256xx_device *bq, bool ts_ignore);
372 struct bq256xx_device *bq =
375 bq->usb_event = val;
376 queue_work(system_power_efficient_wq, &bq->usb_work);
383 struct bq256xx_device *bq =
386 switch (bq->usb_event) {
390 power_supply_changed(bq->charger);
393 dev_err(bq->dev, "Error switching to charger mode.\n");
435 static int bq256xx_get_state(struct bq256xx_device *bq,
442 ret = regmap_read(bq->regmap, BQ256XX_CHARGER_STATUS_0,
447 ret = regmap_read(bq->regmap, BQ256XX_CHARGER_STATUS_1,
464 static int bq256xx_set_charge_type(struct bq256xx_device *bq, int type)
480 return regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_0,
485 static int bq256xx_get_ichg_curr(struct bq256xx_device *bq)
491 ret = regmap_read(bq->regmap, BQ256XX_CHARGE_CURRENT_LIMIT,
501 static int bq25618_619_get_ichg_curr(struct bq256xx_device *bq)
507 ret = regmap_read(bq->regmap, BQ256XX_CHARGE_CURRENT_LIMIT,
520 static int bq256xx_set_ichg_curr(struct bq256xx_device *bq, int ichg)
523 int ichg_max = bq->init_data.ichg_max;
528 return regmap_update_bits(bq->regmap, BQ256XX_CHARGE_CURRENT_LIMIT,
532 static int bq25618_619_set_ichg_curr(struct bq256xx_device *bq, int ichg)
536 int ichg_max = bq->init_data.ichg_max;
547 return regmap_update_bits(bq->regmap, BQ256XX_CHARGE_CURRENT_LIMIT,
551 static int bq25618_619_get_chrg_volt(struct bq256xx_device *bq)
557 ret = regmap_read(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
574 static int bq25611d_get_chrg_volt(struct bq256xx_device *bq)
580 ret = regmap_read(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
596 static int bq2560x_get_chrg_volt(struct bq256xx_device *bq)
602 ret = regmap_read(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
614 static int bq25601d_get_chrg_volt(struct bq256xx_device *bq)
620 ret = regmap_read(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
632 static int bq25618_619_set_chrg_volt(struct bq256xx_device *bq, int vbatreg)
636 int vbatreg_max = bq->init_data.vbatreg_max;
649 return regmap_update_bits(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
654 static int bq25611d_set_chrg_volt(struct bq256xx_device *bq, int vbatreg)
658 int vbatreg_max = bq->init_data.vbatreg_max;
671 return regmap_update_bits(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
676 static int bq2560x_set_chrg_volt(struct bq256xx_device *bq, int vbatreg)
679 int vbatreg_max = bq->init_data.vbatreg_max;
686 return regmap_update_bits(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
691 static int bq25601d_set_chrg_volt(struct bq256xx_device *bq, int vbatreg)
694 int vbatreg_max = bq->init_data.vbatreg_max;
701 return regmap_update_bits(bq->regmap, BQ256XX_BATTERY_VOLTAGE_LIMIT,
706 static int bq256xx_set_ts_ignore(struct bq256xx_device *bq, bool ts_ignore)
708 return regmap_update_bits(bq->regmap, BQ256XX_INPUT_CURRENT_LIMIT,
712 static int bq256xx_get_prechrg_curr(struct bq256xx_device *bq)
718 ret = regmap_read(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
730 static int bq256xx_set_prechrg_curr(struct bq256xx_device *bq, int iprechg)
740 return regmap_update_bits(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
744 static int bq25618_619_get_prechrg_curr(struct bq256xx_device *bq)
750 ret = regmap_read(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
762 static int bq25618_619_set_prechrg_curr(struct bq256xx_device *bq, int iprechg)
772 return regmap_update_bits(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
776 static int bq256xx_get_term_curr(struct bq256xx_device *bq)
782 ret = regmap_read(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
793 static int bq256xx_set_term_curr(struct bq256xx_device *bq, int iterm)
802 return regmap_update_bits(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
806 static int bq25618_619_get_term_curr(struct bq256xx_device *bq)
812 ret = regmap_read(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
823 static int bq25618_619_set_term_curr(struct bq256xx_device *bq, int iterm)
832 return regmap_update_bits(bq->regmap, BQ256XX_PRECHG_AND_TERM_CURR_LIM,
836 static int bq256xx_get_input_volt_lim(struct bq256xx_device *bq)
842 ret = regmap_read(bq->regmap, BQ256XX_CHARGER_CONTROL_2,
853 static int bq256xx_set_input_volt_lim(struct bq256xx_device *bq, int vindpm)
862 return regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_2,
866 static int bq256xx_get_input_curr_lim(struct bq256xx_device *bq)
872 ret = regmap_read(bq->regmap, BQ256XX_INPUT_CURRENT_LIMIT,
883 static int bq256xx_set_input_curr_lim(struct bq256xx_device *bq, int iindpm)
892 return regmap_update_bits(bq->regmap, BQ256XX_INPUT_CURRENT_LIMIT,
898 struct bq256xx_device *bq = data;
900 regmap_update_bits(bq->regmap, BQ256XX_PART_INFORMATION,
903 if (!IS_ERR_OR_NULL(bq->usb2_phy))
904 usb_unregister_notifier(bq->usb2_phy, &bq->usb_nb);
906 if (!IS_ERR_OR_NULL(bq->usb3_phy))
907 usb_unregister_notifier(bq->usb3_phy, &bq->usb_nb);
914 struct bq256xx_device *bq = power_supply_get_drvdata(psy);
919 ret = bq->chip_info->bq256xx_set_iindpm(bq, val->intval);
928 ret = bq->chip_info->bq256xx_set_vbatreg(bq, val->intval);
934 ret = bq->chip_info->bq256xx_set_ichg(bq, val->intval);
940 ret = bq->chip_info->bq256xx_set_iprechg(bq, val->intval);
946 ret = bq->chip_info->bq256xx_set_iterm(bq, val->intval);
952 ret = bq->chip_info->bq256xx_set_vindpm(bq, val->intval);
958 ret = bq->chip_info->bq256xx_set_charge_type(bq, val->intval);
975 struct bq256xx_device *bq = power_supply_get_drvdata(psy);
979 val->intval = bq->init_data.ichg_max;
983 val->intval = bq->init_data.vbatreg_max;
997 struct bq256xx_device *bq = power_supply_get_drvdata(psy);
1001 mutex_lock(&bq->lock);
1002 ret = bq256xx_get_state(bq, &state);
1003 mutex_unlock(&bq->lock);
1065 if (bq->chip_info->has_usb_detect) {
1122 val->strval = bq->model_name;
1130 ret = bq->chip_info->bq256xx_get_vindpm(bq);
1137 ret = bq->chip_info->bq256xx_get_iindpm(bq);
1144 ret = bq->chip_info->bq256xx_get_vbatreg(bq);
1151 ret = bq->chip_info->bq256xx_get_ichg(bq);
1158 ret = bq->chip_info->bq256xx_get_iprechg(bq);
1165 ret = bq->chip_info->bq256xx_get_iterm(bq);
1178 static bool bq256xx_state_changed(struct bq256xx_device *bq,
1183 mutex_lock(&bq->lock);
1184 old_state = bq->state;
1185 mutex_unlock(&bq->lock);
1192 struct bq256xx_device *bq = private;
1196 ret = bq256xx_get_state(bq, &state);
1200 if (!bq256xx_state_changed(bq, &state))
1203 mutex_lock(&bq->lock);
1204 bq->state = state;
1205 mutex_unlock(&bq->lock);
1207 power_supply_changed(bq->charger);
1544 static int bq256xx_power_supply_init(struct bq256xx_device *bq,
1547 bq->charger = devm_power_supply_register(bq->dev,
1550 if (IS_ERR(bq->charger)) {
1552 return PTR_ERR(bq->charger);
1555 bq->battery = devm_power_supply_register(bq->dev,
1558 if (IS_ERR(bq->battery)) {
1560 return PTR_ERR(bq->battery);
1565 static int bq256xx_hw_init(struct bq256xx_device *bq)
1573 if (bq->watchdog_timer == bq256xx_watchdog_time[i]) {
1578 bq->watchdog_timer > bq256xx_watchdog_time[i] &&
1579 bq->watchdog_timer < bq256xx_watchdog_time[i + 1])
1582 ret = regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_1,
1588 ret = power_supply_get_battery_info(bq->charger, &bat_info);
1593 dev_warn(bq->dev, "battery info missing, default values will be applied\n");
1596 bq->chip_info->bq256xx_def_ichg;
1599 bq->chip_info->bq256xx_def_vbatreg;
1602 bq->chip_info->bq256xx_def_iprechg;
1605 bq->chip_info->bq256xx_def_iterm;
1607 bq->init_data.ichg_max =
1608 bq->chip_info->bq256xx_max_ichg;
1610 bq->init_data.vbatreg_max =
1611 bq->chip_info->bq256xx_max_vbatreg;
1613 bq->init_data.ichg_max =
1616 bq->init_data.vbatreg_max =
1620 ret = bq->chip_info->bq256xx_set_vindpm(bq, bq->init_data.vindpm);
1624 ret = bq->chip_info->bq256xx_set_iindpm(bq, bq->init_data.iindpm);
1628 ret = bq->chip_info->bq256xx_set_ichg(bq,
1629 bq->chip_info->bq256xx_def_ichg);
1633 ret = bq->chip_info->bq256xx_set_iprechg(bq,
1638 ret = bq->chip_info->bq256xx_set_vbatreg(bq,
1639 bq->chip_info->bq256xx_def_vbatreg);
1643 ret = bq->chip_info->bq256xx_set_iterm(bq,
1648 if (bq->chip_info->bq256xx_set_ts_ignore) {
1649 ret = bq->chip_info->bq256xx_set_ts_ignore(bq, bq->init_data.ts_ignore);
1654 power_supply_put_battery_info(bq->charger, bat_info);
1659 static int bq256xx_parse_dt(struct bq256xx_device *bq,
1664 psy_cfg->drv_data = bq;
1667 ret = device_property_read_u32(bq->dev, "ti,watchdog-timeout-ms",
1668 &bq->watchdog_timer);
1670 bq->watchdog_timer = BQ256XX_WATCHDOG_DIS;
1672 if (bq->watchdog_timer > BQ256XX_WATCHDOG_MAX ||
1673 bq->watchdog_timer < BQ256XX_WATCHDOG_DIS)
1676 ret = device_property_read_u32(bq->dev,
1678 &bq->init_data.vindpm);
1680 bq->init_data.vindpm = bq->chip_info->bq256xx_def_vindpm;
1682 ret = device_property_read_u32(bq->dev,
1684 &bq->init_data.iindpm);
1686 bq->init_data.iindpm = bq->chip_info->bq256xx_def_iindpm;
1688 bq->init_data.ts_ignore = device_property_read_bool(bq->dev, "ti,no-thermistor");
1697 struct bq256xx_device *bq;
1702 bq = devm_kzalloc(dev, sizeof(*bq), GFP_KERNEL);
1703 if (!bq)
1706 bq->client = client;
1707 bq->dev = dev;
1708 bq->chip_info = &bq256xx_chip_info_tbl[id->driver_data];
1710 mutex_init(&bq->lock);
1712 strncpy(bq->model_name, id->name, I2C_NAME_SIZE);
1714 bq->regmap = devm_regmap_init_i2c(client,
1715 bq->chip_info->bq256xx_regmap_config);
1717 if (IS_ERR(bq->regmap)) {
1719 return PTR_ERR(bq->regmap);
1722 i2c_set_clientdata(client, bq);
1724 ret = bq256xx_parse_dt(bq, &psy_cfg, dev);
1730 ret = devm_add_action_or_reset(dev, bq256xx_charger_reset, bq);
1735 bq->usb2_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
1736 if (!IS_ERR_OR_NULL(bq->usb2_phy)) {
1737 INIT_WORK(&bq->usb_work, bq256xx_usb_work);
1738 bq->usb_nb.notifier_call = bq256xx_usb_notifier;
1739 usb_register_notifier(bq->usb2_phy, &bq->usb_nb);
1742 bq->usb3_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB3);
1743 if (!IS_ERR_OR_NULL(bq->usb3_phy)) {
1744 INIT_WORK(&bq->usb_work, bq256xx_usb_work);
1745 bq->usb_nb.notifier_call = bq256xx_usb_notifier;
1746 usb_register_notifier(bq->usb3_phy, &bq->usb_nb);
1754 dev_name(&client->dev), bq);
1761 ret = bq256xx_power_supply_init(bq, &psy_cfg, dev);
1767 ret = bq256xx_hw_init(bq);