Lines Matching defs:bdi

251 	int (*check_chip)(struct bq24190_dev_info *bdi);
252 int (*set_chg_config)(struct bq24190_dev_info *bdi, const u8 chg_config);
253 int (*set_otg_vbus)(struct bq24190_dev_info *bdi, bool enable);
258 static int bq24190_charger_set_charge_type(struct bq24190_dev_info *bdi,
286 static int bq24190_read(struct bq24190_dev_info *bdi, u8 reg, u8 *data)
290 ret = i2c_smbus_read_byte_data(bdi->client, reg);
298 static int bq24190_write(struct bq24190_dev_info *bdi, u8 reg, u8 data)
300 return i2c_smbus_write_byte_data(bdi->client, reg, data);
303 static int bq24190_read_mask(struct bq24190_dev_info *bdi, u8 reg,
309 ret = bq24190_read(bdi, reg, &v);
320 static int bq24190_write_mask(struct bq24190_dev_info *bdi, u8 reg,
326 ret = bq24190_read(bdi, reg, &v);
333 return bq24190_write(bdi, reg, v);
336 static int bq24190_get_field_val(struct bq24190_dev_info *bdi,
344 ret = bq24190_read_mask(bdi, reg, mask, shift, &v);
354 static int bq24190_set_field_val(struct bq24190_dev_info *bdi,
363 return bq24190_write_mask(bdi, reg, mask, shift, idx);
484 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
494 ret = pm_runtime_resume_and_get(bdi->dev);
498 ret = bq24190_read_mask(bdi, info->reg, info->mask, info->shift, &v);
504 pm_runtime_mark_last_busy(bdi->dev);
505 pm_runtime_put_autosuspend(bdi->dev);
514 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
527 ret = pm_runtime_resume_and_get(bdi->dev);
531 ret = bq24190_write_mask(bdi, info->reg, info->mask, info->shift, v);
535 pm_runtime_mark_last_busy(bdi->dev);
536 pm_runtime_put_autosuspend(bdi->dev);
542 static int bq24190_set_otg_vbus(struct bq24190_dev_info *bdi, bool enable)
544 union power_supply_propval val = { .intval = bdi->charge_type };
547 ret = pm_runtime_resume_and_get(bdi->dev);
549 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret);
553 bdi->otg_vbus_enabled = enable;
555 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
560 ret = bq24190_charger_set_charge_type(bdi, &val);
562 pm_runtime_mark_last_busy(bdi->dev);
563 pm_runtime_put_autosuspend(bdi->dev);
568 static int bq24296_set_otg_vbus(struct bq24190_dev_info *bdi, bool enable)
572 ret = pm_runtime_resume_and_get(bdi->dev);
574 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret);
578 bdi->otg_vbus_enabled = enable;
580 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
588 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
593 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
599 pm_runtime_mark_last_busy(bdi->dev);
600 pm_runtime_put_autosuspend(bdi->dev);
618 struct bq24190_dev_info *bdi = rdev_get_drvdata(dev);
622 ret = pm_runtime_resume_and_get(bdi->dev);
624 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret);
628 ret = bq24190_read_mask(bdi, BQ24190_REG_POC,
632 pm_runtime_mark_last_busy(bdi->dev);
633 pm_runtime_put_autosuspend(bdi->dev);
638 bdi->otg_vbus_enabled = (val == BQ24190_REG_POC_CHG_CONFIG_OTG ||
640 return bdi->otg_vbus_enabled;
655 struct bq24190_dev_info *bdi = rdev_get_drvdata(dev);
659 ret = pm_runtime_resume_and_get(bdi->dev);
661 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret);
665 ret = bq24190_read_mask(bdi, BQ24190_REG_POC,
669 pm_runtime_mark_last_busy(bdi->dev);
670 pm_runtime_put_autosuspend(bdi->dev);
675 bdi->otg_vbus_enabled = (val == BQ24296_REG_POC_OTG_CONFIG_OTG);
677 return bdi->otg_vbus_enabled;
718 static int bq24190_register_vbus_regulator(struct bq24190_dev_info *bdi)
720 struct bq24190_platform_data *pdata = bdi->dev->platform_data;
725 cfg.dev = bdi->dev;
730 cfg.driver_data = bdi;
731 reg = devm_regulator_register(bdi->dev, bdi->info->vbus_desc, &cfg);
734 dev_err(bdi->dev, "Can't register regulator: %d\n", ret);
740 static int bq24190_register_vbus_regulator(struct bq24190_dev_info *bdi)
746 static int bq24190_set_config(struct bq24190_dev_info *bdi)
751 ret = bq24190_read(bdi, BQ24190_REG_CTTC, &v);
755 bdi->watchdog = ((v & BQ24190_REG_CTTC_WATCHDOG_MASK) >>
768 ret = bq24190_write(bdi, BQ24190_REG_CTTC, v);
772 if (bdi->sys_min) {
773 v = bdi->sys_min / 100 - 30; // manual section 9.5.1.2, table 9
774 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
782 if (bdi->iprechg) {
783 v = bdi->iprechg / 128 - 1; // manual section 9.5.1.4, table 11
784 ret = bq24190_write_mask(bdi, BQ24190_REG_PCTCC,
792 if (bdi->iterm) {
793 v = bdi->iterm / 128 - 1; // manual section 9.5.1.4, table 11
794 ret = bq24190_write_mask(bdi, BQ24190_REG_PCTCC,
802 if (bdi->ichg) {
803 ret = bq24190_set_field_val(bdi, BQ24190_REG_CCC,
807 bdi->info->ichg_array_size,
808 bdi->ichg);
813 if (bdi->vreg) {
814 ret = bq24190_set_field_val(bdi, BQ24190_REG_CVC,
819 bdi->vreg);
827 static int bq24190_register_reset(struct bq24190_dev_info *bdi)
842 if (device_property_read_bool(bdi->dev, "disable-reset"))
846 ret = bq24190_write_mask(bdi, BQ24190_REG_POC,
855 ret = bq24190_read_mask(bdi, BQ24190_REG_POC,
873 static int bq24190_charger_get_charge_type(struct bq24190_dev_info *bdi,
879 ret = bq24190_read_mask(bdi, BQ24190_REG_POC,
890 ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
906 static int bq24190_battery_set_chg_config(struct bq24190_dev_info *bdi,
909 return bq24190_write_mask(bdi, BQ24190_REG_POC,
915 static int bq24296_battery_set_chg_config(struct bq24190_dev_info *bdi,
918 return bq24190_write_mask(bdi, BQ24190_REG_POC,
924 static int bq24190_charger_set_charge_type(struct bq24190_dev_info *bdi,
958 bdi->charge_type = val->intval;
963 if (bdi->otg_vbus_enabled)
967 ret = bq24190_write_mask(bdi, BQ24190_REG_CCC,
974 ret = bq24190_write_mask(bdi, BQ24190_REG_CTTC,
982 return bdi->info->set_chg_config(bdi, chg_config);
1028 static int bq24190_charger_get_health(struct bq24190_dev_info *bdi,
1034 mutex_lock(&bdi->f_reg_lock);
1035 v = bdi->f_reg;
1036 mutex_unlock(&bdi->f_reg_lock);
1038 if (v & bdi->info->ntc_fault_mask) {
1039 health = bdi->info->get_ntc_status(v);
1080 static int bq24190_charger_get_online(struct bq24190_dev_info *bdi,
1086 ret = bq24190_read_mask(bdi, BQ24190_REG_SS,
1092 ret = bq24190_read_mask(bdi, BQ24190_REG_MOC,
1103 static int bq24190_battery_set_online(struct bq24190_dev_info *bdi,
1105 static int bq24190_battery_get_status(struct bq24190_dev_info *bdi,
1107 static int bq24190_battery_get_temp_alert_max(struct bq24190_dev_info *bdi,
1109 static int bq24190_battery_set_temp_alert_max(struct bq24190_dev_info *bdi,
1112 static int bq24190_charger_set_online(struct bq24190_dev_info *bdi,
1115 return bq24190_battery_set_online(bdi, val);
1118 static int bq24190_charger_get_status(struct bq24190_dev_info *bdi,
1121 return bq24190_battery_get_status(bdi, val);
1124 static int bq24190_charger_get_temp_alert_max(struct bq24190_dev_info *bdi,
1127 return bq24190_battery_get_temp_alert_max(bdi, val);
1130 static int bq24190_charger_set_temp_alert_max(struct bq24190_dev_info *bdi,
1133 return bq24190_battery_set_temp_alert_max(bdi, val);
1136 static int bq24190_charger_get_precharge(struct bq24190_dev_info *bdi,
1142 ret = bq24190_read_mask(bdi, BQ24190_REG_PCTCC,
1150 ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
1165 static int bq24190_charger_get_charge_term(struct bq24190_dev_info *bdi,
1171 ret = bq24190_read_mask(bdi, BQ24190_REG_PCTCC,
1181 static int bq24190_charger_get_current(struct bq24190_dev_info *bdi,
1187 ret = bq24190_get_field_val(bdi, BQ24190_REG_CCC,
1190 bdi->info->ichg_array_size, &curr);
1194 ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
1208 static int bq24190_charger_set_current(struct bq24190_dev_info *bdi,
1214 ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
1224 if (curr > bdi->ichg_max)
1227 ret = bq24190_set_field_val(bdi, BQ24190_REG_CCC,
1230 bdi->info->ichg_array_size, curr);
1234 bdi->ichg = curr;
1239 static int bq24190_charger_get_voltage(struct bq24190_dev_info *bdi,
1244 ret = bq24190_get_field_val(bdi, BQ24190_REG_CVC,
1255 static int bq24190_charger_set_voltage(struct bq24190_dev_info *bdi,
1260 if (val->intval > bdi->vreg_max)
1263 ret = bq24190_set_field_val(bdi, BQ24190_REG_CVC,
1270 bdi->vreg = val->intval;
1275 static int bq24190_charger_get_iinlimit(struct bq24190_dev_info *bdi,
1280 ret = bq24190_get_field_val(bdi, BQ24190_REG_ISC,
1292 static int bq24190_charger_set_iinlimit(struct bq24190_dev_info *bdi,
1295 return bq24190_set_field_val(bdi, BQ24190_REG_ISC,
1305 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
1308 dev_dbg(bdi->dev, "prop: %d\n", psp);
1310 ret = pm_runtime_resume_and_get(bdi->dev);
1316 ret = bq24190_charger_get_charge_type(bdi, val);
1319 ret = bq24190_charger_get_health(bdi, val);
1322 ret = bq24190_charger_get_online(bdi, val);
1325 ret = bq24190_charger_get_status(bdi, val);
1328 ret = bq24190_charger_get_temp_alert_max(bdi, val);
1331 ret = bq24190_charger_get_precharge(bdi, val);
1334 ret = bq24190_charger_get_charge_term(bdi, val);
1337 ret = bq24190_charger_get_current(bdi, val);
1340 val->intval = bdi->ichg_max;
1344 ret = bq24190_charger_get_voltage(bdi, val);
1347 val->intval = bdi->vreg_max;
1351 ret = bq24190_charger_get_iinlimit(bdi, val);
1358 val->strval = bdi->model_name;
1369 pm_runtime_mark_last_busy(bdi->dev);
1370 pm_runtime_put_autosuspend(bdi->dev);
1379 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
1382 dev_dbg(bdi->dev, "prop: %d\n", psp);
1384 ret = pm_runtime_resume_and_get(bdi->dev);
1390 ret = bq24190_charger_set_online(bdi, val);
1393 ret = bq24190_charger_set_temp_alert_max(bdi, val);
1396 ret = bq24190_charger_set_charge_type(bdi, val);
1399 ret = bq24190_charger_set_current(bdi, val);
1402 ret = bq24190_charger_set_voltage(bdi, val);
1405 ret = bq24190_charger_set_iinlimit(bdi, val);
1411 pm_runtime_mark_last_busy(bdi->dev);
1412 pm_runtime_put_autosuspend(bdi->dev);
1435 struct bq24190_dev_info *bdi =
1441 ret = power_supply_get_property_from_supplier(bdi->charger,
1447 bq24190_charger_set_property(bdi->charger,
1450 power_supply_changed(bdi->charger);
1456 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
1466 queue_delayed_work(system_wq, &bdi->input_current_limit_work,
1505 static int bq24190_battery_get_status(struct bq24190_dev_info *bdi,
1511 mutex_lock(&bdi->f_reg_lock);
1512 chrg_fault = bdi->f_reg;
1513 mutex_unlock(&bdi->f_reg_lock);
1518 ret = bq24190_read(bdi, BQ24190_REG_SS, &ss_reg);
1557 static int bq24190_battery_get_health(struct bq24190_dev_info *bdi,
1563 mutex_lock(&bdi->f_reg_lock);
1564 v = bdi->f_reg;
1565 mutex_unlock(&bdi->f_reg_lock);
1570 v &= bdi->info->ntc_fault_mask;
1572 health = v ? bdi->info->get_ntc_status(v) : POWER_SUPPLY_HEALTH_GOOD;
1579 static int bq24190_battery_get_online(struct bq24190_dev_info *bdi,
1585 ret = bq24190_read_mask(bdi, BQ24190_REG_MOC,
1595 static int bq24190_battery_set_online(struct bq24190_dev_info *bdi,
1598 return bq24190_write_mask(bdi, BQ24190_REG_MOC,
1603 static int bq24190_battery_get_temp_alert_max(struct bq24190_dev_info *bdi,
1608 ret = bq24190_get_field_val(bdi, BQ24190_REG_ICTRC,
1620 static int bq24190_battery_set_temp_alert_max(struct bq24190_dev_info *bdi,
1623 return bq24190_set_field_val(bdi, BQ24190_REG_ICTRC,
1633 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
1636 dev_warn(bdi->dev, "warning: /sys/class/power_supply/bq24190-battery is deprecated\n");
1637 dev_dbg(bdi->dev, "prop: %d\n", psp);
1639 ret = pm_runtime_resume_and_get(bdi->dev);
1645 ret = bq24190_battery_get_status(bdi, val);
1648 ret = bq24190_battery_get_health(bdi, val);
1651 ret = bq24190_battery_get_online(bdi, val);
1659 ret = bq24190_battery_get_temp_alert_max(bdi, val);
1669 pm_runtime_mark_last_busy(bdi->dev);
1670 pm_runtime_put_autosuspend(bdi->dev);
1679 struct bq24190_dev_info *bdi = power_supply_get_drvdata(psy);
1682 dev_warn(bdi->dev, "warning: /sys/class/power_supply/bq24190-battery is deprecated\n");
1683 dev_dbg(bdi->dev, "prop: %d\n", psp);
1685 ret = pm_runtime_resume_and_get(bdi->dev);
1691 ret = bq24190_battery_set_online(bdi, val);
1694 ret = bq24190_battery_set_temp_alert_max(bdi, val);
1700 pm_runtime_mark_last_busy(bdi->dev);
1701 pm_runtime_put_autosuspend(bdi->dev);
1742 static int bq24190_configure_usb_otg(struct bq24190_dev_info *bdi, u8 ss_reg)
1748 ret = extcon_set_state_sync(bdi->edev, EXTCON_USB, otg_enabled);
1750 dev_err(bdi->dev, "Can't set extcon state to %d: %d\n",
1756 static void bq24190_check_status(struct bq24190_dev_info *bdi)
1764 battery_mask_f |= bdi->info->ntc_fault_mask;
1766 ret = bq24190_read(bdi, BQ24190_REG_SS, &ss_reg);
1768 dev_err(bdi->dev, "Can't read SS reg: %d\n", ret);
1774 ret = bq24190_read(bdi, BQ24190_REG_F, &f_reg);
1776 dev_err(bdi->dev, "Can't read F reg: %d\n", ret);
1786 if (f_reg != bdi->f_reg) {
1787 dev_warn(bdi->dev,
1792 !!(f_reg & bdi->info->ntc_fault_mask));
1794 mutex_lock(&bdi->f_reg_lock);
1795 if ((bdi->f_reg & battery_mask_f) != (f_reg & battery_mask_f))
1797 if ((bdi->f_reg & ~battery_mask_f) != (f_reg & ~battery_mask_f))
1799 bdi->f_reg = f_reg;
1800 mutex_unlock(&bdi->f_reg_lock);
1803 if (ss_reg != bdi->ss_reg) {
1808 if ((bdi->ss_reg & BQ24190_REG_SS_PG_STAT_MASK) &&
1810 ret = bq24190_write_mask(bdi, BQ24190_REG_ISC,
1815 dev_err(bdi->dev, "Can't access ISC reg: %d\n",
1819 if ((bdi->ss_reg & battery_mask_ss) != (ss_reg & battery_mask_ss))
1821 if ((bdi->ss_reg & ~battery_mask_ss) != (ss_reg & ~battery_mask_ss))
1823 bdi->ss_reg = ss_reg;
1827 power_supply_changed(bdi->charger);
1828 bq24190_configure_usb_otg(bdi, ss_reg);
1830 if (alert_battery && bdi->battery)
1831 power_supply_changed(bdi->battery);
1833 dev_dbg(bdi->dev, "ss_reg: 0x%02x, f_reg: 0x%02x\n", ss_reg, f_reg);
1838 struct bq24190_dev_info *bdi = data;
1841 bdi->irq_event = true;
1842 error = pm_runtime_resume_and_get(bdi->dev);
1844 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error);
1847 bq24190_check_status(bdi);
1848 pm_runtime_mark_last_busy(bdi->dev);
1849 pm_runtime_put_autosuspend(bdi->dev);
1850 bdi->irq_event = false;
1855 static int bq24190_check_chip(struct bq24190_dev_info *bdi)
1860 ret = bq24190_read_mask(bdi, BQ24190_REG_VPRS,
1873 dev_err(bdi->dev, "Error unknown model: 0x%02x\n", v);
1880 static int bq24296_check_chip(struct bq24190_dev_info *bdi)
1885 ret = bq24190_read_mask(bdi, BQ24190_REG_VPRS,
1896 dev_err(bdi->dev, "Error unknown model: 0x%02x\n", v);
1903 static int bq24190_hw_init(struct bq24190_dev_info *bdi)
1907 ret = bdi->info->check_chip(bdi);
1911 ret = bq24190_register_reset(bdi);
1915 ret = bq24190_set_config(bdi);
1919 return bq24190_read(bdi, BQ24190_REG_SS, &bdi->ss_reg);
1922 static int bq24190_get_config(struct bq24190_dev_info *bdi)
1928 idx = bdi->info->ichg_array_size - 1;
1930 bdi->ichg_max = bq24190_ccc_ichg_values[idx];
1933 bdi->vreg_max = bq24190_cvc_vreg_values[idx];
1935 if (device_property_read_u32(bdi->dev, s, &v) == 0) {
1939 bdi->sys_min = v;
1941 dev_warn(bdi->dev, "invalid value for %s: %u\n", s, v);
1944 if (!power_supply_get_battery_info(bdi->charger, &info)) {
1948 bdi->iprechg = v;
1950 dev_warn(bdi->dev, "invalid value for battery:precharge-current-microamp: %d\n",
1956 bdi->iterm = v;
1958 dev_warn(bdi->dev, "invalid value for battery:charge-term-current-microamp: %d\n",
1963 if (v >= bq24190_ccc_ichg_values[0] && v <= bdi->ichg_max)
1964 bdi->ichg = bdi->ichg_max = v;
1967 if (v >= bq24190_cvc_vreg_values[0] && v <= bdi->vreg_max)
1968 bdi->vreg = bdi->vreg_max = v;
2038 struct bq24190_dev_info *bdi;
2046 bdi = devm_kzalloc(dev, sizeof(*bdi), GFP_KERNEL);
2047 if (!bdi) {
2048 dev_err(dev, "Can't alloc bdi struct\n");
2052 bdi->client = client;
2053 bdi->dev = dev;
2054 strscpy(bdi->model_name, id->name, sizeof(bdi->model_name));
2055 bdi->info = i2c_get_match_data(client);
2056 mutex_init(&bdi->f_reg_lock);
2057 bdi->charge_type = POWER_SUPPLY_CHARGE_TYPE_FAST;
2058 bdi->f_reg = 0;
2059 bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */
2060 INIT_DELAYED_WORK(&bdi->input_current_limit_work,
2063 i2c_set_clientdata(client, bdi);
2070 bdi->edev = devm_extcon_dev_allocate(dev, bq24190_usb_extcon_cable);
2071 if (IS_ERR(bdi->edev))
2072 return PTR_ERR(bdi->edev);
2074 ret = devm_extcon_dev_register(dev, bdi->edev);
2092 charger_cfg.drv_data = bdi;
2096 bdi->charger = power_supply_register(dev, &bq24190_charger_desc,
2098 if (IS_ERR(bdi->charger)) {
2100 ret = PTR_ERR(bdi->charger);
2107 battery_cfg.drv_data = bdi;
2108 bdi->battery = power_supply_register(dev, &bq24190_battery_desc,
2110 if (IS_ERR(bdi->battery)) {
2112 ret = PTR_ERR(bdi->battery);
2117 ret = bq24190_get_config(bdi);
2123 ret = bq24190_hw_init(bdi);
2129 ret = bq24190_configure_usb_otg(bdi, bdi->ss_reg);
2133 bdi->initialized = true;
2138 "bq24190-charger", bdi);
2144 ret = bq24190_register_vbus_regulator(bdi);
2156 if (!IS_ERR_OR_NULL(bdi->battery))
2157 power_supply_unregister(bdi->battery);
2158 power_supply_unregister(bdi->charger);
2169 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2172 cancel_delayed_work_sync(&bdi->input_current_limit_work);
2173 error = pm_runtime_resume_and_get(bdi->dev);
2175 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error);
2177 bq24190_register_reset(bdi);
2178 if (bdi->battery)
2179 power_supply_unregister(bdi->battery);
2180 power_supply_unregister(bdi->charger);
2182 pm_runtime_put_sync(bdi->dev);
2183 pm_runtime_dont_use_autosuspend(bdi->dev);
2184 pm_runtime_disable(bdi->dev);
2189 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2192 bdi->info->set_otg_vbus(bdi, false);
2198 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2200 if (!bdi->initialized)
2203 dev_dbg(bdi->dev, "%s\n", __func__);
2211 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2213 if (!bdi->initialized)
2216 if (!bdi->irq_event) {
2217 dev_dbg(bdi->dev, "checking events on possible wakeirq\n");
2218 bq24190_check_status(bdi);
2227 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2230 error = pm_runtime_resume_and_get(bdi->dev);
2232 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error);
2234 bq24190_register_reset(bdi);
2237 pm_runtime_mark_last_busy(bdi->dev);
2238 pm_runtime_put_autosuspend(bdi->dev);
2247 struct bq24190_dev_info *bdi = i2c_get_clientdata(client);
2250 bdi->f_reg = 0;
2251 bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */
2253 error = pm_runtime_resume_and_get(bdi->dev);
2255 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error);
2257 bq24190_register_reset(bdi);
2258 bq24190_set_config(bdi);
2259 bq24190_read(bdi, BQ24190_REG_SS, &bdi->ss_reg);
2262 pm_runtime_mark_last_busy(bdi->dev);
2263 pm_runtime_put_autosuspend(bdi->dev);
2267 power_supply_changed(bdi->charger);
2268 if (bdi->battery)
2269 power_supply_changed(bdi->battery);