Lines Matching full:charger
3 * Power supply driver for ChromeOS EC based Peripheral Device Charger.
33 struct charger_data *charger; member
53 static int cros_pchg_ec_command(const struct charger_data *charger, in cros_pchg_ec_command() argument
61 struct cros_ec_dev *ec_dev = charger->ec_dev; in cros_pchg_ec_command()
77 ret = cros_ec_cmd_xfer_status(charger->ec_device, msg); in cros_pchg_ec_command()
87 static bool cros_pchg_cmd_ver_check(const struct charger_data *charger) in cros_pchg_cmd_ver_check() argument
94 ret = cros_pchg_ec_command(charger, 1, EC_CMD_GET_CMD_VERSIONS, in cros_pchg_cmd_ver_check()
97 dev_warn(charger->dev, in cros_pchg_cmd_ver_check()
106 static int cros_pchg_port_count(const struct charger_data *charger) in cros_pchg_port_count() argument
111 ret = cros_pchg_ec_command(charger, 0, EC_CMD_PCHG_COUNT, in cros_pchg_port_count()
114 dev_warn(charger->dev, in cros_pchg_port_count()
124 struct charger_data *charger = port->charger; in cros_pchg_get_status() local
127 struct device *dev = charger->dev; in cros_pchg_get_status()
133 ret = cros_pchg_ec_command(charger, pchg_cmd_version, EC_CMD_PCHG, in cros_pchg_get_status()
229 static int cros_pchg_event(const struct charger_data *charger, in cros_pchg_event() argument
234 for (i = 0; i < charger->num_registered_psy; i++) in cros_pchg_event()
235 cros_pchg_get_port_status(charger->ports[i], false); in cros_pchg_event()
240 static u32 cros_get_device_event(const struct charger_data *charger) in cros_get_device_event() argument
244 struct device *dev = charger->dev; in cros_get_device_event()
248 ret = cros_pchg_ec_command(charger, 0, EC_CMD_DEVICE_EVENT, in cros_get_device_event()
264 struct charger_data *charger = in cros_ec_notify() local
278 device_event_mask = cros_get_device_event(charger); in cros_ec_notify()
282 return cros_pchg_event(charger, host_event); in cros_ec_notify()
291 struct charger_data *charger; in cros_pchg_probe() local
299 charger = devm_kzalloc(dev, sizeof(*charger), GFP_KERNEL); in cros_pchg_probe()
300 if (!charger) in cros_pchg_probe()
303 charger->dev = dev; in cros_pchg_probe()
304 charger->ec_dev = ec_dev; in cros_pchg_probe()
305 charger->ec_device = ec_device; in cros_pchg_probe()
307 ret = cros_pchg_port_count(charger); in cros_pchg_probe()
318 if (!cros_pchg_cmd_ver_check(charger)) { in cros_pchg_probe()
340 port->charger = charger; in cros_pchg_probe()
359 charger->ports[charger->num_registered_psy++] = port; in cros_pchg_probe()
362 if (!charger->num_registered_psy) in cros_pchg_probe()
365 nb = &charger->notifier; in cros_pchg_probe()
385 MODULE_DESCRIPTION("ChromeOS EC peripheral device charger");