Lines Matching +full:input +full:- +full:current +full:- +full:limit +full:- +full:microamp
1 // SPDX-License-Identifier: GPL-2.0-only
19 #include <linux/extcon-provider.h>
23 #define BQ24190_REG_ISC 0x00 /* Input Source Control */
32 #define BQ24190_REG_POC 0x01 /* Power-On Configuration */
56 #define BQ24190_REG_CCC 0x02 /* Charge Current Control */
63 #define BQ24190_REG_PCTCC 0x03 /* Pre-charge/Termination Current Cntl */
162 * The tables below provide a 2-way mapping for the value that goes in
163 * the register field and the real-world value that it represents.
165 * number at that index in the array is the real-world value that it
219 * reads return the current value. In order to return the fault status
272 * 'val'. The index range returned is 0 to 'tbl_size' - 1. Assumes that
284 return i - 1; in bq24190_find_idx()
293 ret = i2c_smbus_read_byte_data(bdi->client, reg); in bq24190_read()
303 return i2c_smbus_write_byte_data(bdi->client, reg, data); in bq24190_write()
351 v = (v >= tbl_size) ? (tbl_size - 1) : v; in bq24190_get_field_val()
405 /* On i386 ptrace-abi.h defines SS that breaks the macro calls below. */
460 int i, limit = ARRAY_SIZE(bq24190_sysfs_field_tbl); in bq24190_sysfs_init_attrs() local
462 for (i = 0; i < limit; i++) in bq24190_sysfs_init_attrs()
465 bq24190_sysfs_attrs[limit] = NULL; /* Has additional entry for this */ in bq24190_sysfs_init_attrs()
471 int i, limit = ARRAY_SIZE(bq24190_sysfs_field_tbl); in bq24190_sysfs_field_lookup() local
473 for (i = 0; i < limit; i++) in bq24190_sysfs_field_lookup()
477 if (i >= limit) in bq24190_sysfs_field_lookup()
493 info = bq24190_sysfs_field_lookup(attr->attr.name); in bq24190_sysfs_show()
495 return -EINVAL; in bq24190_sysfs_show()
497 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_sysfs_show()
501 ret = bq24190_read_mask(bdi, info->reg, info->mask, info->shift, &v); in bq24190_sysfs_show()
507 pm_runtime_mark_last_busy(bdi->dev); in bq24190_sysfs_show()
508 pm_runtime_put_autosuspend(bdi->dev); in bq24190_sysfs_show()
522 info = bq24190_sysfs_field_lookup(attr->attr.name); in bq24190_sysfs_store()
524 return -EINVAL; in bq24190_sysfs_store()
530 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_sysfs_store()
534 ret = bq24190_write_mask(bdi, info->reg, info->mask, info->shift, v); in bq24190_sysfs_store()
538 pm_runtime_mark_last_busy(bdi->dev); in bq24190_sysfs_store()
539 pm_runtime_put_autosuspend(bdi->dev); in bq24190_sysfs_store()
547 union power_supply_propval val = { .intval = bdi->charge_type }; in bq24190_set_otg_vbus()
550 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_set_otg_vbus()
552 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret); in bq24190_set_otg_vbus()
556 bdi->otg_vbus_enabled = enable; in bq24190_set_otg_vbus()
565 pm_runtime_mark_last_busy(bdi->dev); in bq24190_set_otg_vbus()
566 pm_runtime_put_autosuspend(bdi->dev); in bq24190_set_otg_vbus()
573 union power_supply_propval val = { .intval = bdi->charge_type }; in bq24296_set_otg_vbus()
576 ret = pm_runtime_resume_and_get(bdi->dev); in bq24296_set_otg_vbus()
578 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret); in bq24296_set_otg_vbus()
582 bdi->otg_vbus_enabled = enable; in bq24296_set_otg_vbus()
608 pm_runtime_mark_last_busy(bdi->dev); in bq24296_set_otg_vbus()
609 pm_runtime_put_autosuspend(bdi->dev); in bq24296_set_otg_vbus()
631 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_vbus_is_enabled()
633 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret); in bq24190_vbus_is_enabled()
641 pm_runtime_mark_last_busy(bdi->dev); in bq24190_vbus_is_enabled()
642 pm_runtime_put_autosuspend(bdi->dev); in bq24190_vbus_is_enabled()
647 bdi->otg_vbus_enabled = (val == BQ24190_REG_POC_CHG_CONFIG_OTG || in bq24190_vbus_is_enabled()
649 return bdi->otg_vbus_enabled; in bq24190_vbus_is_enabled()
668 ret = pm_runtime_resume_and_get(bdi->dev); in bq24296_vbus_is_enabled()
670 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", ret); in bq24296_vbus_is_enabled()
678 pm_runtime_mark_last_busy(bdi->dev); in bq24296_vbus_is_enabled()
679 pm_runtime_put_autosuspend(bdi->dev); in bq24296_vbus_is_enabled()
684 bdi->otg_vbus_enabled = (val == BQ24296_REG_POC_OTG_CONFIG_OTG); in bq24296_vbus_is_enabled()
686 return bdi->otg_vbus_enabled; in bq24296_vbus_is_enabled()
697 .of_match = "usb-otg-vbus",
713 .of_match = "usb-otg-vbus",
729 struct bq24190_platform_data *pdata = bdi->dev->platform_data; in bq24190_register_vbus_regulator()
734 cfg.dev = bdi->dev; in bq24190_register_vbus_regulator()
735 if (pdata && pdata->regulator_init_data) in bq24190_register_vbus_regulator()
736 cfg.init_data = pdata->regulator_init_data; in bq24190_register_vbus_regulator()
740 reg = devm_regulator_register(bdi->dev, bdi->info->vbus_desc, &cfg); in bq24190_register_vbus_regulator()
743 dev_err(bdi->dev, "Can't register regulator: %d\n", ret); in bq24190_register_vbus_regulator()
764 bdi->watchdog = ((v & BQ24190_REG_CTTC_WATCHDOG_MASK) >> in bq24190_set_config()
781 if (bdi->sys_min) { in bq24190_set_config()
782 v = bdi->sys_min / 100 - 30; // manual section 9.5.1.2, table 9 in bq24190_set_config()
791 if (bdi->iprechg) { in bq24190_set_config()
792 v = bdi->iprechg / 128 - 1; // manual section 9.5.1.4, table 11 in bq24190_set_config()
801 if (bdi->iterm) { in bq24190_set_config()
802 v = bdi->iterm / 128 - 1; // manual section 9.5.1.4, table 11 in bq24190_set_config()
811 if (bdi->ichg) { in bq24190_set_config()
816 bdi->info->ichg_array_size, in bq24190_set_config()
817 bdi->ichg); in bq24190_set_config()
822 if (bdi->vreg) { in bq24190_set_config()
828 bdi->vreg); in bq24190_set_config()
838 int ret, limit = 100; in bq24190_register_reset() local
844 * { PROPERTY_ENTRY_BOOL("disable-reset"), ... }; in bq24190_register_reset()
851 if (device_property_read_bool(bdi->dev, "disable-reset")) in bq24190_register_reset()
875 } while (--limit); in bq24190_register_reset()
877 return -EIO; in bq24190_register_reset()
910 val->intval = type; in bq24190_charger_get_charge_type()
942 * termination current so it recommends turning off the termination in bq24190_charger_set_charge_type()
949 switch (val->intval) { in bq24190_charger_set_charge_type()
964 return -EINVAL; in bq24190_charger_set_charge_type()
967 bdi->charge_type = val->intval; in bq24190_charger_set_charge_type()
970 * the charge-type until its gets disabled. in bq24190_charger_set_charge_type()
972 if (bdi->otg_vbus_enabled) in bq24190_charger_set_charge_type()
991 return bdi->info->set_chg_config(bdi, chg_config); in bq24190_charger_set_charge_type()
1043 mutex_lock(&bdi->f_reg_lock); in bq24190_charger_get_health()
1044 v = bdi->f_reg; in bq24190_charger_get_health()
1045 mutex_unlock(&bdi->f_reg_lock); in bq24190_charger_get_health()
1047 if (v & bdi->info->ntc_fault_mask) { in bq24190_charger_get_health()
1048 health = bdi->info->get_ntc_status(v); in bq24190_charger_get_health()
1053 case 0x1: /* Input Fault (VBUS OVP or VBAT<VBUS<3.8V) */ in bq24190_charger_get_health()
1055 * This could be over-voltage or under-voltage in bq24190_charger_get_health()
1058 * when its really under-voltage, just return in bq24190_charger_get_health()
1070 health = -1; in bq24190_charger_get_health()
1074 * This could be over-current or over-voltage but there's in bq24190_charger_get_health()
1077 * even if it was over-current. in bq24190_charger_get_health()
1084 val->intval = health; in bq24190_charger_get_health()
1107 val->intval = pg_stat && !batfet_disable; in bq24190_charger_get_online()
1165 /* If FORCE_20PCT is enabled, then current is 50% of IPRECHG value */ in bq24190_charger_get_precharge()
1169 val->intval = curr; in bq24190_charger_get_precharge()
1186 val->intval = ++v * 128 * 1000; in bq24190_charger_get_charge_term()
1199 bdi->info->ichg_array_size, &curr); in bq24190_charger_get_current()
1209 /* If FORCE_20PCT is enabled, then current is 20% of ICHG value */ in bq24190_charger_get_current()
1213 val->intval = curr; in bq24190_charger_get_current()
1221 int ret, curr = val->intval; in bq24190_charger_set_current()
1233 if (curr > bdi->ichg_max) in bq24190_charger_set_current()
1234 return -EINVAL; in bq24190_charger_set_current()
1239 bdi->info->ichg_array_size, curr); in bq24190_charger_set_current()
1243 bdi->ichg = curr; in bq24190_charger_set_current()
1260 val->intval = voltage; in bq24190_charger_get_voltage()
1269 if (val->intval > bdi->vreg_max) in bq24190_charger_set_voltage()
1270 return -EINVAL; in bq24190_charger_set_voltage()
1275 ARRAY_SIZE(bq24190_cvc_vreg_values), val->intval); in bq24190_charger_set_voltage()
1279 bdi->vreg = val->intval; in bq24190_charger_set_voltage()
1297 val->intval = iinlimit; in bq24190_charger_get_iinlimit()
1308 ARRAY_SIZE(bq24190_isc_iinlim_values), val->intval); in bq24190_charger_set_iinlimit()
1317 dev_dbg(bdi->dev, "prop: %d\n", psp); in bq24190_charger_get_property()
1319 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_charger_get_property()
1350 val->intval = bdi->ichg_max; in bq24190_charger_get_property()
1357 val->intval = bdi->vreg_max; in bq24190_charger_get_property()
1364 val->intval = POWER_SUPPLY_SCOPE_SYSTEM; in bq24190_charger_get_property()
1368 val->strval = bdi->model_name; in bq24190_charger_get_property()
1372 val->strval = BQ24190_MANUFACTURER; in bq24190_charger_get_property()
1376 ret = -ENODATA; in bq24190_charger_get_property()
1379 pm_runtime_mark_last_busy(bdi->dev); in bq24190_charger_get_property()
1380 pm_runtime_put_autosuspend(bdi->dev); in bq24190_charger_get_property()
1392 dev_dbg(bdi->dev, "prop: %d\n", psp); in bq24190_charger_set_property()
1394 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_charger_set_property()
1419 ret = -EINVAL; in bq24190_charger_set_property()
1422 pm_runtime_mark_last_busy(bdi->dev); in bq24190_charger_set_property()
1423 pm_runtime_put_autosuspend(bdi->dev); in bq24190_charger_set_property()
1453 ret = power_supply_get_property_from_supplier(bdi->charger, in bq24190_input_current_limit_work()
1459 bq24190_charger_set_property(bdi->charger, in bq24190_input_current_limit_work()
1462 power_supply_changed(bdi->charger); in bq24190_input_current_limit_work()
1465 /* Sync the input-current-limit with our parent supply (if we have one) */
1471 * The Power-Good detection may take up to 220ms, sometimes in bq24190_charger_external_power_changed()
1475 * too low default 500mA iinlim. Delay setting the input-current-limit in bq24190_charger_external_power_changed()
1478 queue_delayed_work(system_wq, &bdi->input_current_limit_work, in bq24190_charger_external_power_changed()
1502 "main-battery",
1506 .name = "bq24190-charger",
1527 mutex_lock(&bdi->f_reg_lock); in bq24190_battery_get_status()
1528 chrg_fault = bdi->f_reg; in bq24190_battery_get_status()
1529 mutex_unlock(&bdi->f_reg_lock); in bq24190_battery_get_status()
1540 * - there is no good power source; in bq24190_battery_get_status()
1541 * - there is a charge fault. in bq24190_battery_get_status()
1555 case 0x1: /* Pre-charge */ in bq24190_battery_get_status()
1563 ret = -EIO; in bq24190_battery_get_status()
1568 val->intval = status; in bq24190_battery_get_status()
1579 mutex_lock(&bdi->f_reg_lock); in bq24190_battery_get_health()
1580 v = bdi->f_reg; in bq24190_battery_get_health()
1581 mutex_unlock(&bdi->f_reg_lock); in bq24190_battery_get_health()
1586 v &= bdi->info->ntc_fault_mask; in bq24190_battery_get_health()
1588 health = v ? bdi->info->get_ntc_status(v) : POWER_SUPPLY_HEALTH_GOOD; in bq24190_battery_get_health()
1591 val->intval = health; in bq24190_battery_get_health()
1607 val->intval = !batfet_disable; in bq24190_battery_get_online()
1616 BQ24190_REG_MOC_BATFET_DISABLE_SHIFT, !val->intval); in bq24190_battery_set_online()
1632 val->intval = temp; in bq24190_battery_get_temp_alert_max()
1643 ARRAY_SIZE(bq24190_ictrc_treg_values), val->intval); in bq24190_battery_set_temp_alert_max()
1652 dev_warn(bdi->dev, "warning: /sys/class/power_supply/bq24190-battery is deprecated\n"); in bq24190_battery_get_property()
1653 dev_dbg(bdi->dev, "prop: %d\n", psp); in bq24190_battery_get_property()
1655 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_battery_get_property()
1670 /* Could be Li-on or Li-polymer but no way to tell which */ in bq24190_battery_get_property()
1671 val->intval = POWER_SUPPLY_TECHNOLOGY_UNKNOWN; in bq24190_battery_get_property()
1678 val->intval = POWER_SUPPLY_SCOPE_SYSTEM; in bq24190_battery_get_property()
1682 ret = -ENODATA; in bq24190_battery_get_property()
1685 pm_runtime_mark_last_busy(bdi->dev); in bq24190_battery_get_property()
1686 pm_runtime_put_autosuspend(bdi->dev); in bq24190_battery_get_property()
1698 dev_warn(bdi->dev, "warning: /sys/class/power_supply/bq24190-battery is deprecated\n"); in bq24190_battery_set_property()
1699 dev_dbg(bdi->dev, "prop: %d\n", psp); in bq24190_battery_set_property()
1701 ret = pm_runtime_resume_and_get(bdi->dev); in bq24190_battery_set_property()
1713 ret = -EINVAL; in bq24190_battery_set_property()
1716 pm_runtime_mark_last_busy(bdi->dev); in bq24190_battery_set_property()
1717 pm_runtime_put_autosuspend(bdi->dev); in bq24190_battery_set_property()
1749 .name = "bq24190-battery",
1764 ret = extcon_set_state_sync(bdi->edev, EXTCON_USB, otg_enabled); in bq24190_configure_usb_otg()
1766 dev_err(bdi->dev, "Can't set extcon state to %d: %d\n", in bq24190_configure_usb_otg()
1780 battery_mask_f |= bdi->info->ntc_fault_mask; in bq24190_check_status()
1784 dev_err(bdi->dev, "Can't read SS reg: %d\n", ret); in bq24190_check_status()
1792 dev_err(bdi->dev, "Can't read F reg: %d\n", ret); in bq24190_check_status()
1802 if (f_reg != bdi->f_reg) { in bq24190_check_status()
1803 dev_warn(bdi->dev, in bq24190_check_status()
1808 !!(f_reg & bdi->info->ntc_fault_mask)); in bq24190_check_status()
1810 mutex_lock(&bdi->f_reg_lock); in bq24190_check_status()
1811 if ((bdi->f_reg & battery_mask_f) != (f_reg & battery_mask_f)) in bq24190_check_status()
1813 if ((bdi->f_reg & ~battery_mask_f) != (f_reg & ~battery_mask_f)) in bq24190_check_status()
1815 bdi->f_reg = f_reg; in bq24190_check_status()
1816 mutex_unlock(&bdi->f_reg_lock); in bq24190_check_status()
1819 if (ss_reg != bdi->ss_reg) { in bq24190_check_status()
1821 * The device is in host mode so when PG_STAT goes from 1->0 in bq24190_check_status()
1824 if ((bdi->ss_reg & BQ24190_REG_SS_PG_STAT_MASK) && in bq24190_check_status()
1831 dev_err(bdi->dev, "Can't access ISC reg: %d\n", in bq24190_check_status()
1835 if ((bdi->ss_reg & battery_mask_ss) != (ss_reg & battery_mask_ss)) in bq24190_check_status()
1837 if ((bdi->ss_reg & ~battery_mask_ss) != (ss_reg & ~battery_mask_ss)) in bq24190_check_status()
1839 bdi->ss_reg = ss_reg; in bq24190_check_status()
1843 power_supply_changed(bdi->charger); in bq24190_check_status()
1846 if (alert_battery && bdi->battery) in bq24190_check_status()
1847 power_supply_changed(bdi->battery); in bq24190_check_status()
1849 dev_dbg(bdi->dev, "ss_reg: 0x%02x, f_reg: 0x%02x\n", ss_reg, f_reg); in bq24190_check_status()
1857 bdi->irq_event = true; in bq24190_irq_handler_thread()
1858 error = pm_runtime_resume_and_get(bdi->dev); in bq24190_irq_handler_thread()
1860 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error); in bq24190_irq_handler_thread()
1864 pm_runtime_mark_last_busy(bdi->dev); in bq24190_irq_handler_thread()
1865 pm_runtime_put_autosuspend(bdi->dev); in bq24190_irq_handler_thread()
1866 bdi->irq_event = false; in bq24190_irq_handler_thread()
1889 dev_err(bdi->dev, "Error unknown model: 0x%02x\n", v); in bq24190_check_chip()
1890 return -ENODEV; in bq24190_check_chip()
1913 dev_err(bdi->dev, "Error unknown model: 0x%02x\n", v); in bq24296_check_chip()
1914 return -ENODEV; in bq24296_check_chip()
1924 ret = bdi->info->check_chip(bdi); in bq24190_hw_init()
1936 return bq24190_read(bdi, BQ24190_REG_SS, &bdi->ss_reg); in bq24190_hw_init()
1941 const char * const s = "ti,system-minimum-microvolt"; in bq24190_get_config()
1945 idx = bdi->info->ichg_array_size - 1; in bq24190_get_config()
1947 bdi->ichg_max = bq24190_ccc_ichg_values[idx]; in bq24190_get_config()
1949 idx = ARRAY_SIZE(bq24190_cvc_vreg_values) - 1; in bq24190_get_config()
1950 bdi->vreg_max = bq24190_cvc_vreg_values[idx]; in bq24190_get_config()
1952 if (device_property_read_u32(bdi->dev, s, &v) == 0) { in bq24190_get_config()
1956 bdi->sys_min = v; in bq24190_get_config()
1958 dev_warn(bdi->dev, "invalid value for %s: %u\n", s, v); in bq24190_get_config()
1961 if (!power_supply_get_battery_info(bdi->charger, &info)) { in bq24190_get_config()
1962 v = info->precharge_current_ua / 1000; in bq24190_get_config()
1965 bdi->iprechg = v; in bq24190_get_config()
1967 dev_warn(bdi->dev, "invalid value for battery:precharge-current-microamp: %d\n", in bq24190_get_config()
1970 v = info->charge_term_current_ua / 1000; in bq24190_get_config()
1973 bdi->iterm = v; in bq24190_get_config()
1975 dev_warn(bdi->dev, "invalid value for battery:charge-term-current-microamp: %d\n", in bq24190_get_config()
1979 v = info->constant_charge_current_max_ua; in bq24190_get_config()
1980 if (v >= bq24190_ccc_ichg_values[0] && v <= bdi->ichg_max) in bq24190_get_config()
1981 bdi->ichg = bdi->ichg_max = v; in bq24190_get_config()
1983 v = info->constant_charge_voltage_max_uv; in bq24190_get_config()
1984 if (v >= bq24190_cvc_vreg_values[0] && v <= bdi->vreg_max) in bq24190_get_config()
1985 bdi->vreg = bdi->vreg_max = v; in bq24190_get_config()
2074 struct i2c_adapter *adapter = client->adapter; in bq24190_probe()
2075 struct device *dev = &client->dev; in bq24190_probe()
2082 return -ENODEV; in bq24190_probe()
2088 return -ENOMEM; in bq24190_probe()
2091 bdi->client = client; in bq24190_probe()
2092 bdi->dev = dev; in bq24190_probe()
2093 strscpy(bdi->model_name, id->name, sizeof(bdi->model_name)); in bq24190_probe()
2094 bdi->info = i2c_get_match_data(client); in bq24190_probe()
2095 mutex_init(&bdi->f_reg_lock); in bq24190_probe()
2096 bdi->charge_type = POWER_SUPPLY_CHARGE_TYPE_FAST; in bq24190_probe()
2097 bdi->f_reg = 0; in bq24190_probe()
2098 bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */ in bq24190_probe()
2099 INIT_DELAYED_WORK(&bdi->input_current_limit_work, in bq24190_probe()
2104 if (client->irq <= 0) { in bq24190_probe()
2106 return -EINVAL; in bq24190_probe()
2109 bdi->edev = devm_extcon_dev_allocate(dev, bq24190_usb_extcon_cable); in bq24190_probe()
2110 if (IS_ERR(bdi->edev)) in bq24190_probe()
2111 return PTR_ERR(bdi->edev); in bq24190_probe()
2113 ret = devm_extcon_dev_register(dev, bdi->edev); in bq24190_probe()
2135 bdi->charger = power_supply_register(dev, &bq24190_charger_desc, in bq24190_probe()
2137 if (IS_ERR(bdi->charger)) { in bq24190_probe()
2139 ret = PTR_ERR(bdi->charger); in bq24190_probe()
2145 if (!device_property_read_bool(dev, "omit-battery-class")) { in bq24190_probe()
2147 bdi->battery = power_supply_register(dev, &bq24190_battery_desc, in bq24190_probe()
2149 if (IS_ERR(bdi->battery)) { in bq24190_probe()
2151 ret = PTR_ERR(bdi->battery); in bq24190_probe()
2168 ret = bq24190_configure_usb_otg(bdi, bdi->ss_reg); in bq24190_probe()
2172 bdi->initialized = true; in bq24190_probe()
2174 ret = devm_request_threaded_irq(dev, client->irq, NULL, in bq24190_probe()
2177 "bq24190-charger", bdi); in bq24190_probe()
2187 enable_irq_wake(client->irq); in bq24190_probe()
2195 if (!IS_ERR_OR_NULL(bdi->battery)) in bq24190_probe()
2196 power_supply_unregister(bdi->battery); in bq24190_probe()
2197 power_supply_unregister(bdi->charger); in bq24190_probe()
2211 cancel_delayed_work_sync(&bdi->input_current_limit_work); in bq24190_remove()
2212 error = pm_runtime_resume_and_get(bdi->dev); in bq24190_remove()
2214 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error); in bq24190_remove()
2217 if (bdi->battery) in bq24190_remove()
2218 power_supply_unregister(bdi->battery); in bq24190_remove()
2219 power_supply_unregister(bdi->charger); in bq24190_remove()
2221 pm_runtime_put_sync(bdi->dev); in bq24190_remove()
2222 pm_runtime_dont_use_autosuspend(bdi->dev); in bq24190_remove()
2223 pm_runtime_disable(bdi->dev); in bq24190_remove()
2231 bdi->info->set_otg_vbus(bdi, false); in bq24190_shutdown()
2239 if (!bdi->initialized) in bq24190_runtime_suspend()
2242 dev_dbg(bdi->dev, "%s\n", __func__); in bq24190_runtime_suspend()
2252 if (!bdi->initialized) in bq24190_runtime_resume()
2255 if (!bdi->irq_event) { in bq24190_runtime_resume()
2256 dev_dbg(bdi->dev, "checking events on possible wakeirq\n"); in bq24190_runtime_resume()
2269 error = pm_runtime_resume_and_get(bdi->dev); in bq24190_pm_suspend()
2271 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error); in bq24190_pm_suspend()
2276 pm_runtime_mark_last_busy(bdi->dev); in bq24190_pm_suspend()
2277 pm_runtime_put_autosuspend(bdi->dev); in bq24190_pm_suspend()
2289 bdi->f_reg = 0; in bq24190_pm_resume()
2290 bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */ in bq24190_pm_resume()
2292 error = pm_runtime_resume_and_get(bdi->dev); in bq24190_pm_resume()
2294 dev_warn(bdi->dev, "pm_runtime_get failed: %i\n", error); in bq24190_pm_resume()
2298 bq24190_read(bdi, BQ24190_REG_SS, &bdi->ss_reg); in bq24190_pm_resume()
2301 pm_runtime_mark_last_busy(bdi->dev); in bq24190_pm_resume()
2302 pm_runtime_put_autosuspend(bdi->dev); in bq24190_pm_resume()
2306 power_supply_changed(bdi->charger); in bq24190_pm_resume()
2307 if (bdi->battery) in bq24190_pm_resume()
2308 power_supply_changed(bdi->battery); in bq24190_pm_resume()
2349 .name = "bq24190-charger",