提交 cda3b013 编写于 作者: P Phil Reid 提交者: Sebastian Reichel

power: supply: sbs-battery: Add alert callback

To simplify the sbs-manager code and notification of battery removal
use the i2c alert callback to notify the sbs-battery driver that an
event has occurred.
Signed-off-by: NPhil Reid <preid@electromag.com.au>
Signed-off-by: NSebastian Reichel <sebastian.reichel@collabora.co.uk>
上级 cad87f09
...@@ -701,21 +701,30 @@ static int sbs_get_property(struct power_supply *psy, ...@@ -701,21 +701,30 @@ static int sbs_get_property(struct power_supply *psy,
return 0; return 0;
} }
static irqreturn_t sbs_irq(int irq, void *devid) static void sbs_supply_changed(struct sbs_info *chip)
{ {
struct sbs_info *chip = devid;
struct power_supply *battery = chip->power_supply; struct power_supply *battery = chip->power_supply;
int ret; int ret;
ret = gpiod_get_value_cansleep(chip->gpio_detect); ret = gpiod_get_value_cansleep(chip->gpio_detect);
if (ret < 0) if (ret < 0)
return ret; return;
chip->is_present = ret; chip->is_present = ret;
power_supply_changed(battery); power_supply_changed(battery);
}
static irqreturn_t sbs_irq(int irq, void *devid)
{
sbs_supply_changed(devid);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static void sbs_alert(struct i2c_client *client, enum i2c_alert_protocol prot,
unsigned int data)
{
sbs_supply_changed(i2c_get_clientdata(client));
}
static void sbs_external_power_changed(struct power_supply *psy) static void sbs_external_power_changed(struct power_supply *psy)
{ {
struct sbs_info *chip = power_supply_get_drvdata(psy); struct sbs_info *chip = power_supply_get_drvdata(psy);
...@@ -936,6 +945,7 @@ MODULE_DEVICE_TABLE(of, sbs_dt_ids); ...@@ -936,6 +945,7 @@ MODULE_DEVICE_TABLE(of, sbs_dt_ids);
static struct i2c_driver sbs_battery_driver = { static struct i2c_driver sbs_battery_driver = {
.probe = sbs_probe, .probe = sbs_probe,
.remove = sbs_remove, .remove = sbs_remove,
.alert = sbs_alert,
.id_table = sbs_id, .id_table = sbs_id,
.driver = { .driver = {
.name = "sbs-battery", .name = "sbs-battery",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册