Lines Matching refs:dev_info

55 static inline int ds2780_battery_io(struct ds2780_device_info *dev_info,
58 return w1_ds2780_io(dev_info->w1_dev, buf, addr, count, io);
61 static inline int ds2780_read8(struct ds2780_device_info *dev_info, u8 *val,
64 return ds2780_battery_io(dev_info, val, addr, sizeof(u8), 0);
67 static int ds2780_read16(struct ds2780_device_info *dev_info, s16 *val,
73 ret = ds2780_battery_io(dev_info, raw, addr, sizeof(raw), 0);
82 static inline int ds2780_read_block(struct ds2780_device_info *dev_info,
85 return ds2780_battery_io(dev_info, val, addr, count, 0);
88 static inline int ds2780_write(struct ds2780_device_info *dev_info, u8 *val,
91 return ds2780_battery_io(dev_info, val, addr, count, 1);
104 static int ds2780_save_eeprom(struct ds2780_device_info *dev_info, int reg)
108 ret = ds2780_store_eeprom(dev_info->w1_dev, reg);
112 ret = ds2780_recall_eeprom(dev_info->w1_dev, reg);
120 static int ds2780_set_sense_register(struct ds2780_device_info *dev_info,
125 ret = ds2780_write(dev_info, &conductance,
130 return ds2780_save_eeprom(dev_info, DS2780_RSNSP_REG);
134 static int ds2780_get_rsgain_register(struct ds2780_device_info *dev_info,
137 return ds2780_read16(dev_info, rsgain, DS2780_RSGAIN_MSB_REG);
141 static int ds2780_set_rsgain_register(struct ds2780_device_info *dev_info,
147 ret = ds2780_write(dev_info, raw,
152 return ds2780_save_eeprom(dev_info, DS2780_RSGAIN_MSB_REG);
155 static int ds2780_get_voltage(struct ds2780_device_info *dev_info,
170 ret = ds2780_read16(dev_info, &voltage_raw,
183 static int ds2780_get_temperature(struct ds2780_device_info *dev_info,
199 ret = ds2780_read16(dev_info, &temperature_raw,
214 static int ds2780_get_current(struct ds2780_device_info *dev_info,
225 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG);
230 dev_err(dev_info->dev, "sense resistor value is 0\n");
251 ret = ds2780_read16(dev_info, &current_raw, reg_msb);
259 static int ds2780_get_accumulated_current(struct ds2780_device_info *dev_info,
270 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG);
275 dev_err(dev_info->dev, "sense resistor value is 0\n");
288 ret = ds2780_read16(dev_info, &current_raw, DS2780_ACR_MSB_REG);
296 static int ds2780_get_capacity(struct ds2780_device_info *dev_info,
302 ret = ds2780_read8(dev_info, &raw, DS2780_RARC_REG);
310 static int ds2780_get_status(struct ds2780_device_info *dev_info, int *status)
314 ret = ds2780_get_current(dev_info, CURRENT_NOW, &current_uA);
318 ret = ds2780_get_capacity(dev_info, &capacity);
334 static int ds2780_get_charge_now(struct ds2780_device_info *dev_info,
348 ret = ds2780_read16(dev_info, &charge_raw, DS2780_RAAC_MSB_REG);
356 static int ds2780_get_control_register(struct ds2780_device_info *dev_info,
359 return ds2780_read8(dev_info, control_reg, DS2780_CONTROL_REG);
362 static int ds2780_set_control_register(struct ds2780_device_info *dev_info,
367 ret = ds2780_write(dev_info, &control_reg,
372 return ds2780_save_eeprom(dev_info, DS2780_CONTROL_REG);
380 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
384 ret = ds2780_get_voltage(dev_info, &val->intval);
388 ret = ds2780_get_temperature(dev_info, &val->intval);
400 ret = ds2780_get_current(dev_info, CURRENT_NOW, &val->intval);
404 ret = ds2780_get_current(dev_info, CURRENT_AVG, &val->intval);
408 ret = ds2780_get_status(dev_info, &val->intval);
412 ret = ds2780_get_capacity(dev_info, &val->intval);
416 ret = ds2780_get_accumulated_current(dev_info, &val->intval);
420 ret = ds2780_get_charge_now(dev_info, &val->intval);
450 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
453 ret = ds2780_get_control_register(dev_info, &control_reg);
469 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
472 ret = ds2780_get_control_register(dev_info, &control_reg);
481 dev_err(dev_info->dev, "Invalid pmod setting (0 or 1)\n");
490 ret = ds2780_set_control_register(dev_info, control_reg);
504 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
506 ret = ds2780_read8(dev_info, &sense_resistor, DS2780_RSNSP_REG);
522 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
528 ret = ds2780_set_sense_register(dev_info, new_setting);
542 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
544 ret = ds2780_get_rsgain_register(dev_info, &rsgain);
559 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
567 dev_err(dev_info->dev, "Invalid rsgain setting (0 - 1999)\n");
571 ret = ds2780_set_rsgain_register(dev_info, new_setting);
585 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
587 ret = ds2780_read8(dev_info, &sfr, DS2780_SFR_REG);
603 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
610 dev_err(dev_info->dev, "Invalid pio_pin setting (0 or 1)\n");
614 ret = ds2780_write(dev_info, &new_setting,
629 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
631 return ds2780_read_block(dev_info, buf,
642 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
645 ret = ds2780_write(dev_info, buf,
650 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK1_START);
674 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
676 return ds2780_read_block(dev_info, buf,
687 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy);
690 ret = ds2780_write(dev_info, buf,
695 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK0_START);
748 struct ds2780_device_info *dev_info;
750 dev_info = devm_kzalloc(&pdev->dev, sizeof(*dev_info), GFP_KERNEL);
751 if (!dev_info)
754 platform_set_drvdata(pdev, dev_info);
756 dev_info->dev = &pdev->dev;
757 dev_info->w1_dev = pdev->dev.parent;
758 dev_info->bat_desc.name = dev_name(&pdev->dev);
759 dev_info->bat_desc.type = POWER_SUPPLY_TYPE_BATTERY;
760 dev_info->bat_desc.properties = ds2780_battery_props;
761 dev_info->bat_desc.num_properties = ARRAY_SIZE(ds2780_battery_props);
762 dev_info->bat_desc.get_property = ds2780_battery_get_property;
764 psy_cfg.drv_data = dev_info;
767 dev_info->bat = devm_power_supply_register(&pdev->dev,
768 &dev_info->bat_desc,
770 if (IS_ERR(dev_info->bat)) {
771 dev_err(dev_info->dev, "failed to register battery\n");
772 return PTR_ERR(dev_info->bat);