Lines Matching refs:dev_info
64 static inline int ds2780_battery_io(struct ds2780_device_info *dev_info, in ds2780_battery_io() argument
67 return w1_ds2780_io(dev_info->w1_dev, buf, addr, count, io); in ds2780_battery_io()
70 static inline int ds2780_read8(struct ds2780_device_info *dev_info, u8 *val, in ds2780_read8() argument
73 return ds2780_battery_io(dev_info, val, addr, sizeof(u8), 0); in ds2780_read8()
76 static int ds2780_read16(struct ds2780_device_info *dev_info, s16 *val, in ds2780_read16() argument
82 ret = ds2780_battery_io(dev_info, raw, addr, sizeof(raw), 0); in ds2780_read16()
91 static inline int ds2780_read_block(struct ds2780_device_info *dev_info, in ds2780_read_block() argument
94 return ds2780_battery_io(dev_info, val, addr, count, 0); in ds2780_read_block()
97 static inline int ds2780_write(struct ds2780_device_info *dev_info, u8 *val, in ds2780_write() argument
100 return ds2780_battery_io(dev_info, val, addr, count, 1); in ds2780_write()
113 static int ds2780_save_eeprom(struct ds2780_device_info *dev_info, int reg) in ds2780_save_eeprom() argument
117 ret = ds2780_store_eeprom(dev_info->w1_dev, reg); in ds2780_save_eeprom()
121 ret = ds2780_recall_eeprom(dev_info->w1_dev, reg); in ds2780_save_eeprom()
129 static int ds2780_set_sense_register(struct ds2780_device_info *dev_info, in ds2780_set_sense_register() argument
134 ret = ds2780_write(dev_info, &conductance, in ds2780_set_sense_register()
139 return ds2780_save_eeprom(dev_info, DS2780_RSNSP_REG); in ds2780_set_sense_register()
143 static int ds2780_get_rsgain_register(struct ds2780_device_info *dev_info, in ds2780_get_rsgain_register() argument
146 return ds2780_read16(dev_info, rsgain, DS2780_RSGAIN_MSB_REG); in ds2780_get_rsgain_register()
150 static int ds2780_set_rsgain_register(struct ds2780_device_info *dev_info, in ds2780_set_rsgain_register() argument
156 ret = ds2780_write(dev_info, raw, in ds2780_set_rsgain_register()
161 return ds2780_save_eeprom(dev_info, DS2780_RSGAIN_MSB_REG); in ds2780_set_rsgain_register()
164 static int ds2780_get_voltage(struct ds2780_device_info *dev_info, in ds2780_get_voltage() argument
179 ret = ds2780_read16(dev_info, &voltage_raw, in ds2780_get_voltage()
192 static int ds2780_get_temperature(struct ds2780_device_info *dev_info, in ds2780_get_temperature() argument
208 ret = ds2780_read16(dev_info, &temperature_raw, in ds2780_get_temperature()
223 static int ds2780_get_current(struct ds2780_device_info *dev_info, in ds2780_get_current() argument
234 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG); in ds2780_get_current()
239 dev_err(dev_info->dev, "sense resistor value is 0\n"); in ds2780_get_current()
260 ret = ds2780_read16(dev_info, ¤t_raw, reg_msb); in ds2780_get_current()
268 static int ds2780_get_accumulated_current(struct ds2780_device_info *dev_info, in ds2780_get_accumulated_current() argument
279 ret = ds2780_read8(dev_info, &sense_res_raw, DS2780_RSNSP_REG); in ds2780_get_accumulated_current()
284 dev_err(dev_info->dev, "sense resistor value is 0\n"); in ds2780_get_accumulated_current()
297 ret = ds2780_read16(dev_info, ¤t_raw, DS2780_ACR_MSB_REG); in ds2780_get_accumulated_current()
305 static int ds2780_get_capacity(struct ds2780_device_info *dev_info, in ds2780_get_capacity() argument
311 ret = ds2780_read8(dev_info, &raw, DS2780_RARC_REG); in ds2780_get_capacity()
319 static int ds2780_get_status(struct ds2780_device_info *dev_info, int *status) in ds2780_get_status() argument
323 ret = ds2780_get_current(dev_info, CURRENT_NOW, ¤t_uA); in ds2780_get_status()
327 ret = ds2780_get_capacity(dev_info, &capacity); in ds2780_get_status()
343 static int ds2780_get_charge_now(struct ds2780_device_info *dev_info, in ds2780_get_charge_now() argument
357 ret = ds2780_read16(dev_info, &charge_raw, DS2780_RAAC_MSB_REG); in ds2780_get_charge_now()
365 static int ds2780_get_control_register(struct ds2780_device_info *dev_info, in ds2780_get_control_register() argument
368 return ds2780_read8(dev_info, control_reg, DS2780_CONTROL_REG); in ds2780_get_control_register()
371 static int ds2780_set_control_register(struct ds2780_device_info *dev_info, in ds2780_set_control_register() argument
376 ret = ds2780_write(dev_info, &control_reg, in ds2780_set_control_register()
381 return ds2780_save_eeprom(dev_info, DS2780_CONTROL_REG); in ds2780_set_control_register()
389 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_battery_get_property() local
393 ret = ds2780_get_voltage(dev_info, &val->intval); in ds2780_battery_get_property()
397 ret = ds2780_get_temperature(dev_info, &val->intval); in ds2780_battery_get_property()
409 ret = ds2780_get_current(dev_info, CURRENT_NOW, &val->intval); in ds2780_battery_get_property()
413 ret = ds2780_get_current(dev_info, CURRENT_AVG, &val->intval); in ds2780_battery_get_property()
417 ret = ds2780_get_status(dev_info, &val->intval); in ds2780_battery_get_property()
421 ret = ds2780_get_capacity(dev_info, &val->intval); in ds2780_battery_get_property()
425 ret = ds2780_get_accumulated_current(dev_info, &val->intval); in ds2780_battery_get_property()
429 ret = ds2780_get_charge_now(dev_info, &val->intval); in ds2780_battery_get_property()
459 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_get_pmod_enabled() local
462 ret = ds2780_get_control_register(dev_info, &control_reg); in ds2780_get_pmod_enabled()
478 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_set_pmod_enabled() local
481 ret = ds2780_get_control_register(dev_info, &control_reg); in ds2780_set_pmod_enabled()
490 dev_err(dev_info->dev, "Invalid pmod setting (0 or 1)\n"); in ds2780_set_pmod_enabled()
499 ret = ds2780_set_control_register(dev_info, control_reg); in ds2780_set_pmod_enabled()
513 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_get_sense_resistor_value() local
515 ret = ds2780_read8(dev_info, &sense_resistor, DS2780_RSNSP_REG); in ds2780_get_sense_resistor_value()
531 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_set_sense_resistor_value() local
537 ret = ds2780_set_sense_register(dev_info, new_setting); in ds2780_set_sense_resistor_value()
551 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_get_rsgain_setting() local
553 ret = ds2780_get_rsgain_register(dev_info, &rsgain); in ds2780_get_rsgain_setting()
568 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_set_rsgain_setting() local
576 dev_err(dev_info->dev, "Invalid rsgain setting (0 - 1999)\n"); in ds2780_set_rsgain_setting()
580 ret = ds2780_set_rsgain_register(dev_info, new_setting); in ds2780_set_rsgain_setting()
594 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_get_pio_pin() local
596 ret = ds2780_read8(dev_info, &sfr, DS2780_SFR_REG); in ds2780_get_pio_pin()
612 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_set_pio_pin() local
619 dev_err(dev_info->dev, "Invalid pio_pin setting (0 or 1)\n"); in ds2780_set_pio_pin()
623 ret = ds2780_write(dev_info, &new_setting, in ds2780_set_pio_pin()
638 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_read_param_eeprom_bin() local
640 return ds2780_read_block(dev_info, buf, in ds2780_read_param_eeprom_bin()
651 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_write_param_eeprom_bin() local
654 ret = ds2780_write(dev_info, buf, in ds2780_write_param_eeprom_bin()
659 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK1_START); in ds2780_write_param_eeprom_bin()
683 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_read_user_eeprom_bin() local
685 return ds2780_read_block(dev_info, buf, in ds2780_read_user_eeprom_bin()
696 struct ds2780_device_info *dev_info = to_ds2780_device_info(psy); in ds2780_write_user_eeprom_bin() local
699 ret = ds2780_write(dev_info, buf, in ds2780_write_user_eeprom_bin()
704 ret = ds2780_save_eeprom(dev_info, DS2780_EEPROM_BLOCK0_START); in ds2780_write_user_eeprom_bin()
747 struct ds2780_device_info *dev_info; in ds2780_battery_probe() local
749 dev_info = devm_kzalloc(&pdev->dev, sizeof(*dev_info), GFP_KERNEL); in ds2780_battery_probe()
750 if (!dev_info) { in ds2780_battery_probe()
755 platform_set_drvdata(pdev, dev_info); in ds2780_battery_probe()
757 dev_info->dev = &pdev->dev; in ds2780_battery_probe()
758 dev_info->w1_dev = pdev->dev.parent; in ds2780_battery_probe()
759 dev_info->bat_desc.name = dev_name(&pdev->dev); in ds2780_battery_probe()
760 dev_info->bat_desc.type = POWER_SUPPLY_TYPE_BATTERY; in ds2780_battery_probe()
761 dev_info->bat_desc.properties = ds2780_battery_props; in ds2780_battery_probe()
762 dev_info->bat_desc.num_properties = ARRAY_SIZE(ds2780_battery_props); in ds2780_battery_probe()
763 dev_info->bat_desc.get_property = ds2780_battery_get_property; in ds2780_battery_probe()
765 psy_cfg.drv_data = dev_info; in ds2780_battery_probe()
767 dev_info->bat = power_supply_register(&pdev->dev, &dev_info->bat_desc, in ds2780_battery_probe()
769 if (IS_ERR(dev_info->bat)) { in ds2780_battery_probe()
770 dev_err(dev_info->dev, "failed to register battery\n"); in ds2780_battery_probe()
771 ret = PTR_ERR(dev_info->bat); in ds2780_battery_probe()
775 ret = sysfs_create_group(&dev_info->bat->dev.kobj, &ds2780_attr_group); in ds2780_battery_probe()
777 dev_err(dev_info->dev, "failed to create sysfs group\n"); in ds2780_battery_probe()
781 ret = sysfs_create_bin_file(&dev_info->bat->dev.kobj, in ds2780_battery_probe()
784 dev_err(dev_info->dev, in ds2780_battery_probe()
789 ret = sysfs_create_bin_file(&dev_info->bat->dev.kobj, in ds2780_battery_probe()
792 dev_err(dev_info->dev, in ds2780_battery_probe()
800 sysfs_remove_bin_file(&dev_info->bat->dev.kobj, in ds2780_battery_probe()
803 sysfs_remove_group(&dev_info->bat->dev.kobj, &ds2780_attr_group); in ds2780_battery_probe()
805 power_supply_unregister(dev_info->bat); in ds2780_battery_probe()
812 struct ds2780_device_info *dev_info = platform_get_drvdata(pdev); in ds2780_battery_remove() local
818 sysfs_remove_group(&dev_info->bat->dev.kobj, &ds2780_attr_group); in ds2780_battery_remove()
820 power_supply_unregister(dev_info->bat); in ds2780_battery_remove()