Lines Matching refs:power

3  * AXP20X and AXP22X PMICs' ACIN power supply driver
40 #define DRVNAME "axp20x-ac-power-supply"
54 struct axp20x_ac_power *power = devid;
56 power_supply_changed(power->supply);
65 struct axp20x_ac_power *power = power_supply_get_drvdata(psy);
70 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, &reg);
83 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, &reg);
91 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, &reg);
98 if (val->intval && power->has_acin_path_sel) {
99 ret = regmap_read(power->regmap, AXP813_ACIN_PATH_CTRL,
110 ret = iio_read_channel_processed(power->acin_v, &val->intval);
120 ret = iio_read_channel_processed(power->acin_i, &val->intval);
130 ret = regmap_read(power->regmap, AXP813_ACIN_PATH_CTRL, &reg);
139 ret = regmap_read(power->regmap, AXP813_ACIN_PATH_CTRL, &reg);
161 struct axp20x_ac_power *power = power_supply_get_drvdata(psy);
165 return regmap_update_bits(power->regmap, AXP813_ACIN_PATH_CTRL,
173 return regmap_update_bits(power->regmap, AXP813_ACIN_PATH_CTRL,
181 return regmap_update_bits(power->regmap, AXP813_ACIN_PATH_CTRL,
288 struct axp20x_ac_power *power = dev_get_drvdata(dev);
297 if (device_may_wakeup(&power->supply->dev))
298 enable_irq_wake(power->irqs[i++]);
299 while (i < power->num_irqs)
300 disable_irq(power->irqs[i++]);
307 struct axp20x_ac_power *power = dev_get_drvdata(dev);
310 if (device_may_wakeup(&power->supply->dev))
311 disable_irq_wake(power->irqs[i++]);
312 while (i < power->num_irqs)
313 enable_irq(power->irqs[i++]);
326 struct axp20x_ac_power *power;
340 power = devm_kzalloc(&pdev->dev,
341 struct_size(power, irqs, axp_data->num_irq_names),
343 if (!power)
347 power->acin_v = devm_iio_channel_get(&pdev->dev, "acin_v");
348 if (IS_ERR(power->acin_v)) {
349 if (PTR_ERR(power->acin_v) == -ENODEV)
351 return PTR_ERR(power->acin_v);
354 power->acin_i = devm_iio_channel_get(&pdev->dev, "acin_i");
355 if (IS_ERR(power->acin_i)) {
356 if (PTR_ERR(power->acin_i) == -ENODEV)
358 return PTR_ERR(power->acin_i);
362 power->regmap = dev_get_regmap(pdev->dev.parent, NULL);
363 power->has_acin_path_sel = axp_data->acin_path_sel;
364 power->num_irqs = axp_data->num_irq_names;
366 platform_set_drvdata(pdev, power);
369 psy_cfg.drv_data = power;
371 power->supply = devm_power_supply_register(&pdev->dev,
374 if (IS_ERR(power->supply))
375 return PTR_ERR(power->supply);
385 power->irqs[i] = regmap_irq_get_virq(axp20x->regmap_irqc, irq);
386 ret = devm_request_any_context_irq(&pdev->dev, power->irqs[i],
388 DRVNAME, power);
401 .compatible = "x-powers,axp202-ac-power-supply",
404 .compatible = "x-powers,axp221-ac-power-supply",
407 .compatible = "x-powers,axp813-ac-power-supply",
425 MODULE_DESCRIPTION("AXP20X and AXP22X PMICs' AC power supply driver");