Symbol: ip5xxx
drivers/power/supply/ip5xxx_power.c
168
static int ip5xxx_read(struct ip5xxx *ip5xxx, struct regmap_field *field,
drivers/power/supply/ip5xxx_power.c
178
ip5xxx->initialized = false;
drivers/power/supply/ip5xxx_power.c
183
static int ip5xxx_write(struct ip5xxx *ip5xxx, struct regmap_field *field,
drivers/power/supply/ip5xxx_power.c
193
ip5xxx->initialized = false;
drivers/power/supply/ip5xxx_power.c
200
struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy);
drivers/power/supply/ip5xxx_power.c
203
if (ip5xxx->initialized)
drivers/power/supply/ip5xxx_power.c
210
if (ip5xxx->regs.boost.light_load_shutdown.enable) {
drivers/power/supply/ip5xxx_power.c
211
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.light_load_shutdown.enable, 0);
drivers/power/supply/ip5xxx_power.c
215
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.load_powerup_en, 1);
drivers/power/supply/ip5xxx_power.c
222
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_enable, 1);
drivers/power/supply/ip5xxx_power.c
229
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.vin_pullout_en, 1);
drivers/power/supply/ip5xxx_power.c
237
if (ip5xxx->regs.battery.ntc_dis) {
drivers/power/supply/ip5xxx_power.c
238
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.battery.ntc_dis, 0);
drivers/power/supply/ip5xxx_power.c
242
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.wled_mode, 1);
drivers/power/supply/ip5xxx_power.c
245
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_mode, 1);
drivers/power/supply/ip5xxx_power.c
249
ip5xxx->initialized = true;
drivers/power/supply/ip5xxx_power.c
269
static int ip5xxx_battery_get_status(struct ip5xxx *ip5xxx, int *val)
drivers/power/supply/ip5xxx_power.c
274
if (!ip5xxx->regs.charger.status) {
drivers/power/supply/ip5xxx_power.c
276
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.chg_end, &rval);
drivers/power/supply/ip5xxx_power.c
280
if (rval == ip5xxx->chg_end_inverted)
drivers/power/supply/ip5xxx_power.c
287
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.status, &rval);
drivers/power/supply/ip5xxx_power.c
314
static int ip5xxx_battery_get_charge_type(struct ip5xxx *ip5xxx, int *val)
drivers/power/supply/ip5xxx_power.c
319
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.status, &rval);
drivers/power/supply/ip5xxx_power.c
344
static int ip5xxx_battery_get_health(struct ip5xxx *ip5xxx, int *val)
drivers/power/supply/ip5xxx_power.c
349
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.timeout, &rval);
drivers/power/supply/ip5xxx_power.c
361
static int ip5xxx_battery_get_voltage_max(struct ip5xxx *ip5xxx, int *val)
drivers/power/supply/ip5xxx_power.c
366
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.battery.type, &rval);
drivers/power/supply/ip5xxx_power.c
394
static int ip5xxx_battery_read_adc(struct ip5xxx *ip5xxx,
drivers/power/supply/ip5xxx_power.c
400
ret = ip5xxx_read(ip5xxx, regs->low, &lo);
drivers/power/supply/ip5xxx_power.c
404
ret = ip5xxx_read(ip5xxx, regs->high, &hi);
drivers/power/supply/ip5xxx_power.c
417
struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy);
drivers/power/supply/ip5xxx_power.c
427
return ip5xxx_battery_get_status(ip5xxx, &val->intval);
drivers/power/supply/ip5xxx_power.c
430
return ip5xxx_battery_get_charge_type(ip5xxx, &val->intval);
drivers/power/supply/ip5xxx_power.c
433
return ip5xxx_battery_get_health(ip5xxx, &val->intval);
drivers/power/supply/ip5xxx_power.c
436
return ip5xxx_battery_get_voltage_max(ip5xxx, &val->intval);
drivers/power/supply/ip5xxx_power.c
439
ret = ip5xxx_battery_read_adc(ip5xxx, &ip5xxx->regs.battery.adc.volt, &raw);
drivers/power/supply/ip5xxx_power.c
447
ret = ip5xxx_battery_read_adc(ip5xxx, &ip5xxx->regs.battery.adc.open_volt, &raw);
drivers/power/supply/ip5xxx_power.c
455
ret = ip5xxx_battery_read_adc(ip5xxx, &ip5xxx->regs.battery.adc.curr, &raw);
drivers/power/supply/ip5xxx_power.c
463
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.const_curr_sel, &rval);
drivers/power/supply/ip5xxx_power.c
467
val->intval = ip5xxx->const_curr.setpoint + 100000 * rval;
drivers/power/supply/ip5xxx_power.c
475
ret = ip5xxx_battery_get_voltage_max(ip5xxx, &vmax);
drivers/power/supply/ip5xxx_power.c
479
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.const_volt_sel, &rval);
drivers/power/supply/ip5xxx_power.c
487
ret = ip5xxx_battery_get_voltage_max(ip5xxx, &vmax);
drivers/power/supply/ip5xxx_power.c
499
static int ip5xxx_battery_set_voltage_max(struct ip5xxx *ip5xxx, int val)
drivers/power/supply/ip5xxx_power.c
504
if (val > ip5xxx->vbat_max)
drivers/power/supply/ip5xxx_power.c
524
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.battery.type, rval);
drivers/power/supply/ip5xxx_power.c
529
if (ip5xxx->regs.battery.vset_en) {
drivers/power/supply/ip5xxx_power.c
530
ret = ip5xxx_write(ip5xxx, ip5xxx->regs.battery.vset_en, 1);
drivers/power/supply/ip5xxx_power.c
542
struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy);
drivers/power/supply/ip5xxx_power.c
563
return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.enable, rval);
drivers/power/supply/ip5xxx_power.c
566
return ip5xxx_battery_set_voltage_max(ip5xxx, val->intval);
drivers/power/supply/ip5xxx_power.c
569
rval = (val->intval - ip5xxx->const_curr.setpoint) / 100000;
drivers/power/supply/ip5xxx_power.c
570
return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.const_curr_sel, rval);
drivers/power/supply/ip5xxx_power.c
573
ret = ip5xxx_battery_get_voltage_max(ip5xxx, &vmax);
drivers/power/supply/ip5xxx_power.c
578
return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.const_volt_sel, rval);
drivers/power/supply/ip5xxx_power.c
613
struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy);
drivers/power/supply/ip5xxx_power.c
623
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.boost.enable, &rval);
drivers/power/supply/ip5xxx_power.c
631
ret = ip5xxx_read(ip5xxx, ip5xxx->regs.boost.undervolt_limit, &rval);
drivers/power/supply/ip5xxx_power.c
635
val->intval = ip5xxx->boost_undervolt.setpoint +
drivers/power/supply/ip5xxx_power.c
636
ip5xxx->boost_undervolt.microvolts_per_bit * rval;
drivers/power/supply/ip5xxx_power.c
648
struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy);
drivers/power/supply/ip5xxx_power.c
658
return ip5xxx_write(ip5xxx, ip5xxx->regs.boost.enable, !!val->intval);
drivers/power/supply/ip5xxx_power.c
661
rval = (val->intval - ip5xxx->boost_undervolt.setpoint) /
drivers/power/supply/ip5xxx_power.c
662
ip5xxx->boost_undervolt.microvolts_per_bit;
drivers/power/supply/ip5xxx_power.c
663
return ip5xxx_write(ip5xxx, ip5xxx->regs.boost.undervolt_limit, rval);
drivers/power/supply/ip5xxx_power.c
779
ip5xxx->regmap, cfg->_field); \
drivers/power/supply/ip5xxx_power.c
781
ip5xxx->regs._reg = _tmp; \
drivers/power/supply/ip5xxx_power.c
785
static void ip5xxx_setup_regs(struct device *dev, struct ip5xxx *ip5xxx,
drivers/power/supply/ip5xxx_power.c
822
ip5xxx->vbat_max = cfg->vbat_max;
drivers/power/supply/ip5xxx_power.c
823
ip5xxx->boost_undervolt.setpoint = cfg->boost_undervolt_setpoint;
drivers/power/supply/ip5xxx_power.c
824
ip5xxx->boost_undervolt.microvolts_per_bit = cfg->boost_undervolt_uv_per_bit;
drivers/power/supply/ip5xxx_power.c
825
ip5xxx->const_curr.setpoint = cfg->const_curr_setpoint;
drivers/power/supply/ip5xxx_power.c
826
ip5xxx->chg_end_inverted = cfg->chg_end_inverted;
drivers/power/supply/ip5xxx_power.c
835
struct ip5xxx *ip5xxx;
drivers/power/supply/ip5xxx_power.c
837
ip5xxx = devm_kzalloc(dev, sizeof(*ip5xxx), GFP_KERNEL);
drivers/power/supply/ip5xxx_power.c
838
if (!ip5xxx)
drivers/power/supply/ip5xxx_power.c
841
ip5xxx->regmap = devm_regmap_init_i2c(client, &ip5xxx_regmap_config);
drivers/power/supply/ip5xxx_power.c
842
if (IS_ERR(ip5xxx->regmap))
drivers/power/supply/ip5xxx_power.c
843
return PTR_ERR(ip5xxx->regmap);
drivers/power/supply/ip5xxx_power.c
846
ip5xxx_setup_regs(dev, ip5xxx, fields);
drivers/power/supply/ip5xxx_power.c
849
psy_cfg.drv_data = ip5xxx;