Lines Matching refs:bat
28 struct ingenic_battery *bat = power_supply_get_drvdata(psy);
29 struct power_supply_battery_info *info = &bat->info;
34 ret = iio_read_channel_processed(bat->channel, &val->intval);
44 ret = iio_read_channel_processed(bat->channel, &val->intval);
61 static int ingenic_battery_set_scale(struct ingenic_battery *bat)
67 ret = iio_read_max_channel_raw(bat->channel, &max_raw);
69 dev_err(bat->dev, "Unable to read max raw channel value\n");
73 ret = iio_read_avail_channel_attribute(bat->channel, &scale_raw,
77 dev_err(bat->dev, "Unable to read channel avail scale\n");
83 max_mV = bat->info.voltage_max_design_uv / 1000;
99 dev_err(bat->dev, "Unable to find matching voltage scale\n");
105 ret = iio_write_channel_attribute(bat->channel,
126 struct ingenic_battery *bat;
131 bat = devm_kzalloc(dev, sizeof(*bat), GFP_KERNEL);
132 if (!bat)
135 bat->dev = dev;
136 bat->channel = devm_iio_channel_get(dev, "battery");
137 if (IS_ERR(bat->channel))
138 return PTR_ERR(bat->channel);
140 desc = &bat->desc;
146 psy_cfg.drv_data = bat;
149 bat->battery = devm_power_supply_register(dev, desc, &psy_cfg);
150 if (IS_ERR(bat->battery))
151 return dev_err_probe(dev, PTR_ERR(bat->battery),
154 ret = power_supply_get_battery_info(bat->battery, &bat->info);
159 if (bat->info.voltage_min_design_uv < 0) {
161 return bat->info.voltage_min_design_uv;
163 if (bat->info.voltage_max_design_uv < 0) {
165 return bat->info.voltage_max_design_uv;
168 return ingenic_battery_set_scale(bat);