Symbol: gpio_charger
drivers/power/supply/gpio-charger.c
101
val->intval = gpiod_get_value_cansleep(gpio_charger->gpiod);
drivers/power/supply/gpio-charger.c
104
if (gpiod_get_value_cansleep(gpio_charger->charge_status))
drivers/power/supply/gpio-charger.c
110
val->intval = gpio_charger->charge_current_limit;
drivers/power/supply/gpio-charger.c
122
struct gpio_charger *gpio_charger = psy_to_gpio_charger(psy);
drivers/power/supply/gpio-charger.c
126
return set_charge_current_limit(gpio_charger, val->intval);
drivers/power/supply/gpio-charger.c
195
struct gpio_charger *gpio_charger)
drivers/power/supply/gpio-charger.c
202
gpio_charger->current_limit_gpios = devm_gpiod_get_array_optional(dev,
drivers/power/supply/gpio-charger.c
204
if (IS_ERR(gpio_charger->current_limit_gpios)) {
drivers/power/supply/gpio-charger.c
206
return PTR_ERR(gpio_charger->current_limit_gpios);
drivers/power/supply/gpio-charger.c
209
if (!gpio_charger->current_limit_gpios)
drivers/power/supply/gpio-charger.c
222
gpio_charger->current_limit_map = devm_kmalloc_array(dev,
drivers/power/supply/gpio-charger.c
223
len / 2, sizeof(*gpio_charger->current_limit_map), GFP_KERNEL);
drivers/power/supply/gpio-charger.c
224
if (!gpio_charger->current_limit_map)
drivers/power/supply/gpio-charger.c
227
gpio_charger->current_limit_map_size = len / 2;
drivers/power/supply/gpio-charger.c
230
(u32 *) gpio_charger->current_limit_map, len);
drivers/power/supply/gpio-charger.c
237
for (i = 0; i < gpio_charger->current_limit_map_size; i++) {
drivers/power/supply/gpio-charger.c
238
if (gpio_charger->current_limit_map[i].limit_ua > cur_limit) {
drivers/power/supply/gpio-charger.c
243
cur_limit = gpio_charger->current_limit_map[i].limit_ua;
drivers/power/supply/gpio-charger.c
245
set_charge_current_limit(gpio_charger, cur_limit);
drivers/power/supply/gpio-charger.c
255
len = gpio_charger->current_limit_map_size - 1;
drivers/power/supply/gpio-charger.c
256
set_charge_current_limit(gpio_charger,
drivers/power/supply/gpio-charger.c
257
gpio_charger->current_limit_map[len].limit_ua);
drivers/power/supply/gpio-charger.c
278
struct gpio_charger *gpio_charger;
drivers/power/supply/gpio-charger.c
290
gpio_charger = devm_kzalloc(dev, sizeof(*gpio_charger), GFP_KERNEL);
drivers/power/supply/gpio-charger.c
291
if (!gpio_charger)
drivers/power/supply/gpio-charger.c
293
gpio_charger->dev = dev;
drivers/power/supply/gpio-charger.c
299
gpio_charger->gpiod = devm_gpiod_get_optional(dev, NULL, GPIOD_IN);
drivers/power/supply/gpio-charger.c
300
if (IS_ERR(gpio_charger->gpiod)) {
drivers/power/supply/gpio-charger.c
302
return dev_err_probe(dev, PTR_ERR(gpio_charger->gpiod),
drivers/power/supply/gpio-charger.c
306
if (gpio_charger->gpiod) {
drivers/power/supply/gpio-charger.c
315
gpio_charger->charge_status = charge_status;
drivers/power/supply/gpio-charger.c
320
ret = init_charge_current_limit(dev, gpio_charger);
drivers/power/supply/gpio-charger.c
323
if (gpio_charger->current_limit_map) {
drivers/power/supply/gpio-charger.c
329
charger_desc = &gpio_charger->charger_desc;
drivers/power/supply/gpio-charger.c
338
psy_cfg.drv_data = gpio_charger;
drivers/power/supply/gpio-charger.c
353
gpio_charger->charger = devm_power_supply_register(dev, charger_desc,
drivers/power/supply/gpio-charger.c
355
if (IS_ERR(gpio_charger->charger)) {
drivers/power/supply/gpio-charger.c
356
ret = PTR_ERR(gpio_charger->charger);
drivers/power/supply/gpio-charger.c
361
gpio_charger->irq = gpio_charger_get_irq(dev, gpio_charger->charger,
drivers/power/supply/gpio-charger.c
362
gpio_charger->gpiod);
drivers/power/supply/gpio-charger.c
364
charge_status_irq = gpio_charger_get_irq(dev, gpio_charger->charger,
drivers/power/supply/gpio-charger.c
365
gpio_charger->charge_status);
drivers/power/supply/gpio-charger.c
366
gpio_charger->charge_status_irq = charge_status_irq;
drivers/power/supply/gpio-charger.c
368
platform_set_drvdata(pdev, gpio_charger);
drivers/power/supply/gpio-charger.c
380
struct gpio_charger *gpio_charger = dev_get_drvdata(dev);
drivers/power/supply/gpio-charger.c
383
gpio_charger->wakeup_enabled =
drivers/power/supply/gpio-charger.c
384
!enable_irq_wake(gpio_charger->irq);
drivers/power/supply/gpio-charger.c
391
struct gpio_charger *gpio_charger = dev_get_drvdata(dev);
drivers/power/supply/gpio-charger.c
393
if (device_may_wakeup(dev) && gpio_charger->wakeup_enabled)
drivers/power/supply/gpio-charger.c
394
disable_irq_wake(gpio_charger->irq);
drivers/power/supply/gpio-charger.c
395
power_supply_changed(gpio_charger->charger);
drivers/power/supply/gpio-charger.c
51
static inline struct gpio_charger *psy_to_gpio_charger(struct power_supply *psy)
drivers/power/supply/gpio-charger.c
56
static int set_charge_current_limit(struct gpio_charger *gpio_charger, int val)
drivers/power/supply/gpio-charger.c
59
int ndescs = gpio_charger->current_limit_gpios->ndescs;
drivers/power/supply/gpio-charger.c
60
struct gpio_desc **gpios = gpio_charger->current_limit_gpios->desc;
drivers/power/supply/gpio-charger.c
63
if (!gpio_charger->current_limit_map_size)
drivers/power/supply/gpio-charger.c
66
for (i = 0; i < gpio_charger->current_limit_map_size; i++) {
drivers/power/supply/gpio-charger.c
67
if (gpio_charger->current_limit_map[i].limit_ua <= val)
drivers/power/supply/gpio-charger.c
75
if (i >= gpio_charger->current_limit_map_size)
drivers/power/supply/gpio-charger.c
76
i = gpio_charger->current_limit_map_size - 1;
drivers/power/supply/gpio-charger.c
78
mapping = gpio_charger->current_limit_map[i];
drivers/power/supply/gpio-charger.c
86
gpio_charger->charge_current_limit = mapping.limit_ua;
drivers/power/supply/gpio-charger.c
88
dev_dbg(gpio_charger->dev, "set charge current limit to %d (requested: %d)\n",
drivers/power/supply/gpio-charger.c
89
gpio_charger->charge_current_limit, val);
drivers/power/supply/gpio-charger.c
97
struct gpio_charger *gpio_charger = psy_to_gpio_charger(psy);