Lines Matching defs:dev_info

63 static inline int ds2780_battery_io(struct ds2780_device_info *dev_info,
66 return w1_ds2780_io(dev_info->w1_dev, buf, addr, count, io);
69 static inline int ds2780_read8(struct ds2780_device_info *dev_info, u8 *val,
72 return ds2780_battery_io(dev_info, val, addr, sizeof(u8), 0);
75 static int ds2780_read16(struct ds2780_device_info *dev_info, s16 *val,
81 ret = ds2780_battery_io(dev_info, raw, addr, sizeof(raw), 0);
90 static inline int ds2780_read_block(struct ds2780_device_info *dev_info,
93 return ds2780_battery_io(dev_info, val, addr, count, 0);
96 static inline int ds2780_write(struct ds2780_device_info *dev_info, u8 *val,
99 return ds2780_battery_io(dev_info, val, addr, count, 1);
112 static int ds2780_save_eeprom(struct ds2780_device_info *dev_info, int reg)
116 ret = ds2780_store_eeprom(dev_info->w1_dev, reg);
120 ret = ds2780_recall_eeprom(dev_info->w1_dev, reg);
128 static int ds2780_set_sense_register(struct ds2780_device_info *dev_info,
133 ret = ds2780_write(dev_info, &conductance,
138 return ds2780_save_eeprom(dev_info, DS2780_RSNSP_REG);
142 static int ds2780_get_rsgain_register(struct ds2780_device_info *dev_info,
145 return ds2780_read16(dev_info, rsgain, DS2780_RSGAIN_MSB_REG);
149 static int ds2780_set_rsgain_register(struct ds2780_device_info *dev_info,
155 ret = ds2780_write(dev_info, raw,
160 return ds2780_save_eeprom(dev_info, DS2780_RSGAIN_MSB_REG);
163 static int ds2780_get_voltage(struct ds2780_device_info *dev_info,
178 ret = ds2780_read16(dev_info, &voltage_raw,
191 static int ds2780_get_temperature(struct ds2780_device_info *dev_info,
207 ret = ds2780_read16(dev_info, &temperature_raw,
222 static int ds2780_get_current(struct ds2780_device_info *dev_info,
233 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG);
238 dev_err(dev_info->dev, "sense resistor value is 0\n");
259 ret = ds2780_read16(dev_info, &current_raw, reg_msb);
267 static int ds2780_get_accumulated_current(struct ds2780_device_info *dev_info,
278 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG);
283 dev_err(dev_info->dev, "sense resistor value is 0\n");
296 ret = ds2780_read16(dev_info, &current_raw, DS2780_ACR_MSB_REG);
304 static int ds2780_get_capacity(struct ds2780_device_info *dev_info,
310 ret = ds2780_read8(dev_info, &raw, DS2780_RARC_REG);
318 static int ds2780_get_status(struct ds2780_device_info *dev_info, int *status)
322 ret = ds2780_get_current(dev_info, CURRENT_NOW, &current_uA);
326 ret = ds2780_get_capacity(dev_info, &capacity);
342 static int ds2780_get_charge_now(struct ds2780_device_info *dev_info,
356 ret = ds2780_read16(dev_info, &charge_raw, DS2780_RAAC_MSB_REG);
364 static int ds2780_get_control_register(struct ds2780_device_info *dev_info,
367 return ds2780_read8(dev_info, control_reg, DS2780_CONTROL_REG);
370 static int ds2780_set_control_register(struct ds2780_device_info *dev_info,
375 ret = ds2780_write(dev_info, &control_reg,
380 return ds2780_save_eeprom(dev_info, DS2780_CONTROL_REG);
388 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
392 ret = ds2780_get_voltage(dev_info, &val->intval);
396 ret = ds2780_get_temperature(dev_info, &val->intval);
408 ret = ds2780_get_current(dev_info, CURRENT_NOW, &val->intval);
412 ret = ds2780_get_current(dev_info, CURRENT_AVG, &val->intval);
416 ret = ds2780_get_status(dev_info, &val->intval);
420 ret = ds2780_get_capacity(dev_info, &val->intval);
424 ret = ds2780_get_accumulated_current(dev_info, &val->intval);
428 ret = ds2780_get_charge_now(dev_info, &val->intval);
458 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
461 ret = ds2780_get_control_register(dev_info, &control_reg);
477 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
480 ret = ds2780_get_control_register(dev_info, &control_reg);
489 dev_err(dev_info->dev, "Invalid pmod setting (0 or 1)\n");
498 ret = ds2780_set_control_register(dev_info, control_reg);
512 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
514 ret = ds2780_read8(dev_info, &sense_resistor, DS2780_RSNSP_REG);
530 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
536 ret = ds2780_set_sense_register(dev_info, new_setting);
550 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
552 ret = ds2780_get_rsgain_register(dev_info, &rsgain);
567 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
575 dev_err(dev_info->dev, "Invalid rsgain setting (0 - 1999)\n");
579 ret = ds2780_set_rsgain_register(dev_info, new_setting);
593 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
595 ret = ds2780_read8(dev_info, &sfr, DS2780_SFR_REG);
611 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
618 dev_err(dev_info->dev, "Invalid pio_pin setting (0 or 1)\n");
622 ret = ds2780_write(dev_info, &new_setting,
637 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
643 return ds2780_read_block(dev_info, buf,
654 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
661 ret = ds2780_write(dev_info, buf,
666 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK1_START);
690 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
696 return ds2780_read_block(dev_info, buf,
707 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
714 ret = ds2780_write(dev_info, buf,
719 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK0_START);
761 struct ds2780_device_info *dev_info;
763 dev_info = devm_kzalloc(&pdev->dev, sizeof(*dev_info), GFP_KERNEL);
764 if (!dev_info) {
769 platform_set_drvdata(pdev, dev_info);
771 dev_info->dev = &pdev->dev;
772 dev_info->w1_dev = pdev->dev.parent;
773 dev_info->bat.name = dev_name(&pdev->dev);
774 dev_info->bat.type = POWER_SUPPLY_TYPE_BATTERY;
775 dev_info->bat.properties = ds2780_battery_props;
776 dev_info->bat.num_properties = ARRAY_SIZE(ds2780_battery_props);
777 dev_info->bat.get_property = ds2780_battery_get_property;
779 ret = power_supply_register(&pdev->dev, &dev_info->bat);
781 dev_err(dev_info->dev, "failed to register battery\n");
785 ret = sysfs_create_group(&dev_info->bat.dev->kobj, &ds2780_attr_group);
787 dev_err(dev_info->dev, "failed to create sysfs group\n");
791 ret = sysfs_create_bin_file(&dev_info->bat.dev->kobj,
794 dev_err(dev_info->dev,
799 ret = sysfs_create_bin_file(&dev_info->bat.dev->kobj,
802 dev_err(dev_info->dev,
810 sysfs_remove_bin_file(&dev_info->bat.dev->kobj,
813 sysfs_remove_group(&dev_info->bat.dev->kobj, &ds2780_attr_group);
815 power_supply_unregister(&dev_info->bat);
822 struct ds2780_device_info *dev_info = platform_get_drvdata(pdev);
825 sysfs_remove_group(&dev_info->bat.dev->kobj, &ds2780_attr_group);
827 power_supply_unregister(&dev_info->bat);