[PATCH v2 0/6] Add axp20x-ac power driver

145 views
Skip to first unread message

Michael Haas

unread,
May 1, 2016, 4:57:49 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
This version of the axp20x-ac driver hopefully cleans up all issues
found in version 1.

Major changes:

* Remove check for shortcut between AC and USB
* Remove logging in interrupt handler


Michael Haas

unread,
May 1, 2016, 4:57:55 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
This adds a driver for the ac power_supply bits of the axp20x
PMICs.

This submission is taken directly from Bruno Prémonts 2015 RFC [0].
The original RFC contains drivers for AC, battery and backup
battery. This commit only adds the AC driver for now.

[0] http://permalink.gmane.org/gmane.comp.hardware.netbook.arm.sunxi/17980

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
drivers/power/Makefile | 2 +-
drivers/power/axp20x_ac_power.c | 169 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 170 insertions(+), 1 deletion(-)
create mode 100644 drivers/power/axp20x_ac_power.c

diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index e46b75d..3a785cc 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -9,7 +9,7 @@ obj-$(CONFIG_GENERIC_ADC_BATTERY) += generic-adc-battery.o

obj-$(CONFIG_PDA_POWER) += pda_power.o
obj-$(CONFIG_APM_POWER) += apm_power.o
-obj-$(CONFIG_AXP20X_POWER) += axp20x_usb_power.o
+obj-$(CONFIG_AXP20X_POWER) += axp20x_usb_power.o axp20x_ac_power.o
obj-$(CONFIG_MAX8925_POWER) += max8925_power.o
obj-$(CONFIG_WM831X_BACKUP) += wm831x_backup.o
obj-$(CONFIG_WM831X_POWER) += wm831x_power.o
diff --git a/drivers/power/axp20x_ac_power.c b/drivers/power/axp20x_ac_power.c
new file mode 100644
index 0000000..dcbb1da
--- /dev/null
+++ b/drivers/power/axp20x_ac_power.c
@@ -0,0 +1,169 @@
+/*
+ * AXP20x PMIC AC power driver
+ *
+ * Copyright 2014-2015 Bruno Prémont <bon...@linux-vserver.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/mfd/axp20x.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/power_supply.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+#define DRVNAME "axp20x-ac-power"
+
+struct axp20x_ac_power {
+ struct regmap *regmap;
+ struct power_supply *supply;
+};
+
+static int axp20x_ac_power_get_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct axp20x_ac_power *power = power_supply_get_drvdata(psy);
+ unsigned int input;
+ int r;
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
+ r = axp20x_read_variable_width(power->regmap,
+ AXP20X_ACIN_V_ADC_H, 12);
+ if (r < 0)
+ return r;
+
+ val->intval = r * 1700; /* 1 step = 1.7 mV */
+ return 0;
+ case POWER_SUPPLY_PROP_CURRENT_NOW:
+ r = axp20x_read_variable_width(power->regmap,
+ AXP20X_ACIN_I_ADC_H, 12);
+ if (r < 0)
+ return r;
+
+ val->intval = r * 375; /* 1 step = 0.375 mA */
+ return 0;
+ default:
+ break;
+ }
+
+ /* All the properties below need the input-status reg value */
+ r = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, &input);
+ if (r)
+ return r;
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_PRESENT:
+ val->intval = !!(input & AXP20X_PWR_STATUS_AC_PRESENT);
+ break;
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = !!(input & AXP20X_PWR_STATUS_AC_AVAILABLE);
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static enum power_supply_property axp20x_ac_power_properties[] = {
+ POWER_SUPPLY_PROP_PRESENT,
+ POWER_SUPPLY_PROP_ONLINE,
+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
+ POWER_SUPPLY_PROP_CURRENT_NOW,
+};
+
+static const struct power_supply_desc axp20x_ac_power_desc = {
+ .name = "axp20x-ac",
+ .type = POWER_SUPPLY_TYPE_MAINS,
+ .properties = axp20x_ac_power_properties,
+ .num_properties = ARRAY_SIZE(axp20x_ac_power_properties),
+ .get_property = axp20x_ac_power_get_property,
+};
+
+static irqreturn_t axp20x_irq_ac_handler(int irq, void *devid)
+{
+ struct axp20x_ac_power *power = devid;
+
+ power_supply_changed(power->supply);
+
+ return IRQ_HANDLED;
+}
+
+static int axp20x_ac_power_probe(struct platform_device *pdev)
+{
+ struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
+ struct power_supply_config psy_cfg = {};
+ struct axp20x_ac_power *power;
+ static const char * const irq_names[] = { "ACIN_PLUGIN",
+ "ACIN_REMOVAL", "ACIN_OVER_V" };
+ int i, irq, r;
+
+ power = devm_kzalloc(&pdev->dev, sizeof(*power), GFP_KERNEL);
+ if (!power)
+ return -ENOMEM;
+
+ power->regmap = axp20x->regmap;
+
+ /* Enable ac voltage and current measurement */
+ r = regmap_update_bits(power->regmap, AXP20X_ADC_EN1,
+ AXP20X_ADC_EN1_ACIN_CURR | AXP20X_ADC_EN1_ACIN_VOLT,
+ AXP20X_ADC_EN1_ACIN_CURR | AXP20X_ADC_EN1_ACIN_VOLT);
+ if (r)
+ return r;
+
+ psy_cfg.of_node = pdev->dev.of_node;
+ psy_cfg.drv_data = power;
+
+ power->supply = devm_power_supply_register(&pdev->dev,
+ &axp20x_ac_power_desc, &psy_cfg);
+ if (IS_ERR(power->supply))
+ return PTR_ERR(power->supply);
+
+ /* Request irqs after registering, as irqs may trigger immediately */
+ for (i = 0; i < ARRAY_SIZE(irq_names); i++) {
+ irq = platform_get_irq_byname(pdev, irq_names[i]);
+ if (irq < 0) {
+ dev_warn(&pdev->dev, "No IRQ for %s: %d\n",
+ irq_names[i], irq);
+ continue;
+ }
+ irq = regmap_irq_get_virq(axp20x->regmap_irqc, irq);
+ r = devm_request_any_context_irq(&pdev->dev, irq,
+ axp20x_irq_ac_handler, 0, DRVNAME, power);
+ if (r < 0)
+ dev_warn(&pdev->dev, "Error requesting %s IRQ: %d\n",
+ irq_names[i], r);
+ }
+
+ return 0;
+}
+
+static const struct of_device_id axp20x_ac_power_match[] = {
+ { .compatible = "x-powers,axp202-ac-power-supply" },
+ { }
+};
+MODULE_DEVICE_TABLE(of, axp20x_ac_power_match);
+
+static struct platform_driver axp20x_ac_power_driver = {
+ .probe = axp20x_ac_power_probe,
+ .driver = {
+ .name = DRVNAME,
+ .of_match_table = axp20x_ac_power_match,
+ },
+};
+
+module_platform_driver(axp20x_ac_power_driver);
+
+MODULE_AUTHOR("Bruno Prémont <bon...@linux-vserver.org>");
+MODULE_DESCRIPTION("AXP20x PMIC AC power supply status driver");
+MODULE_LICENSE("GPL");
--
2.8.0

Michael Haas

unread,
May 1, 2016, 4:57:55 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
This change adds some register bit definitions used by the
axp20x-ac-power driver.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
include/linux/mfd/axp20x.h | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
index d82e7d5..c4c6dfa 100644
--- a/include/linux/mfd/axp20x.h
+++ b/include/linux/mfd/axp20x.h
@@ -90,6 +90,17 @@ enum {
#define AXP22X_ALDO3_V_OUT 0x2a
#define AXP22X_CHRG_CTRL3 0x35

+
+/* Fields of AXP20X_PWR_INPUT_STATUS */
+#define AXP20X_PWR_STATUS_AC_PRESENT BIT(7)
+#define AXP20X_PWR_STATUS_AC_AVAILABLE BIT(6)
+#define AXP20X_PWR_STATUS_AC_VBUS_SHORT BIT(1)
+#define AXP20X_PWR_STATUS_AC_VBUS_SEL BIT(0)
+
+/* Fields of AXP20X_ADC_EN1 */
+#define AXP20X_ADC_EN1_ACIN_VOLT BIT(5)
+#define AXP20X_ADC_EN1_ACIN_CURR BIT(4)
+
/* Interrupt */
#define AXP152_IRQ1_EN 0x40
#define AXP152_IRQ2_EN 0x41
--
2.8.0

Michael Haas

unread,
May 1, 2016, 4:57:56 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
As a counterpart to the usb power_supply cell, this commit adds an AC
power_supply cell to the axp20x driver.

Still missing are the RTC backup battery and the main battery charger
cells.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
drivers/mfd/axp20x.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
index a57d6e9..9351c0e 100644
--- a/drivers/mfd/axp20x.c
+++ b/drivers/mfd/axp20x.c
@@ -178,6 +178,12 @@ static struct resource axp288_power_button_resources[] = {
},
};

+static struct resource axp20x_ac_power_supply_resources[] = {
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_PLUGIN, "ACIN_PLUGIN"),
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_REMOVAL, "ACIN_REMOVAL"),
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_OVER_V, "ACIN_OVER_V"),
+};
+
static struct resource axp288_fuel_gauge_resources[] = {
{
.start = AXP288_IRQ_QWBTU,
@@ -440,6 +446,11 @@ static struct mfd_cell axp20x_cells[] = {
.of_compatible = "x-powers,axp202-usb-power-supply",
.num_resources = ARRAY_SIZE(axp20x_usb_power_supply_resources),
.resources = axp20x_usb_power_supply_resources,
+ }, {
+ .name = "axp20x-ac-power-supply",
+ .of_compatible = "x-powers,axp202-ac-power-supply",
+ .num_resources = ARRAY_SIZE(axp20x_ac_power_supply_resources),
+ .resources = axp20x_ac_power_supply_resources,
},
};

--
2.8.0

Michael Haas

unread,
May 1, 2016, 4:57:57 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
Add binding documentation for the ac power supply part of the AXP20x
pmic.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
Acked-by: Rob Herring <ro...@kernel.org>
---
.../bindings/power_supply/axp20x_ac_power.txt | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt

diff --git a/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt b/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt
new file mode 100644
index 0000000..1cbdcfb
--- /dev/null
+++ b/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt
@@ -0,0 +1,34 @@
+AXP20x AC power supply
+
+Required Properties:
+-compatible: "x-powers,axp202-ac-power-supply"
+
+This node is a subnode of the axp20x PMIC.
+
+Example:
+
+axp209: pmic@34 {
+ compatible = "x-powers,axp209";
+ reg = <0x34>;
+ interrupt-parent = <&nmi_intc>;
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ regulators {
+ x-powers,dcdc-freq = <1500>;
+
+ vdd_cpu: dcdc2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1450000>;
+ regulator-name = "vdd-cpu";
+ };
+
+ ...
+ };
+
+ ac-power-supply: ac-power-supply {
+ compatible = "x-powers,axp202-ac-power-supply";
+ };
+};
--
2.8.0

Michael Haas

unread,
May 1, 2016, 4:57:58 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
Add a node representing the ac power supply part of the axp209 pmic.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
arch/arm/boot/dts/axp209.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 051ab3b..9046f0a 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -94,4 +94,10 @@
compatible = "x-powers,axp202-usb-power-supply";
status = "disabled";
};
+
+ ac_power_supply: ac_power_supply {
+ compatible = "x-powers,axp202-ac-power-supply";
+ status = "disabled";
+ };
+
};
--
2.8.0

Michael Haas

unread,
May 1, 2016, 4:57:59 AM5/1/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, deg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
The A20-olinuxino-lime2 has an AC power input.
This patch enables support for current and voltage monitoring
via the axp20x-ac-power driver.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
index d5c796c..bcd4a89 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -163,6 +163,10 @@
regulator-always-on;
};
};
+ ac_power_supply: ac_power_supply {
+ status = "okay";
+ compatible = "x-powers,axp202-ac-power-supply";
+ };
};
};

--
2.8.0

Chen-Yu Tsai

unread,
May 1, 2016, 5:42:10 AM5/1/16
to Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, deg...@redhat.com, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi,
You don't need to include this in the example. Just a "..." would suffice.

> +
> + ac-power-supply: ac-power-supply {
> + compatible = "x-powers,axp202-ac-power-supply";
> + };

Also this should come first in alphabetic order.

Otherwise,

Acked-by: Chen-Yu Tsai <we...@csie.org>

> +};
> --
> 2.8.0
>

Chen-Yu Tsai

unread,
May 1, 2016, 5:49:11 AM5/1/16
to Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi,

On Sun, May 1, 2016 at 4:57 PM, Michael Haas <ha...@computerlinguist.org> wrote:
We keep the bit definitions of each register in each separate driver.
The drivers only define the ones they use.

ChenYu

Chen-Yu Tsai

unread,
May 1, 2016, 5:51:17 AM5/1/16
to Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi,

On Sun, May 1, 2016 at 4:57 PM, Michael Haas <ha...@computerlinguist.org> wrote:
> Add a node representing the ac power supply part of the axp209 pmic.
>
> Signed-off-by: Michael Haas <ha...@computerlinguist.org>
> ---
> arch/arm/boot/dts/axp209.dtsi | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
> index 051ab3b..9046f0a 100644
> --- a/arch/arm/boot/dts/axp209.dtsi
> +++ b/arch/arm/boot/dts/axp209.dtsi
> @@ -94,4 +94,10 @@
> compatible = "x-powers,axp202-usb-power-supply";
> status = "disabled";
> };
> +
> + ac_power_supply: ac_power_supply {

Please keep them alphabetically sorted.

> + compatible = "x-powers,axp202-ac-power-supply";
> + status = "disabled";

I see no reason why we shouldn't just enable it by default.
It is almost always going to be used. Same for the VBUS power supply.

> + };
> +

Extra line here.


ChenYu

> };
> --
> 2.8.0
>

Chen-Yu Tsai

unread,
May 1, 2016, 5:58:36 AM5/1/16
to Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi,

On Sun, May 1, 2016 at 4:57 PM, Michael Haas <ha...@computerlinguist.org> wrote:
> As a counterpart to the usb power_supply cell, this commit adds an AC
> power_supply cell to the axp20x driver.
>
> Still missing are the RTC backup battery and the main battery charger
> cells.
>
> Signed-off-by: Michael Haas <ha...@computerlinguist.org>
> ---
> drivers/mfd/axp20x.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
> index a57d6e9..9351c0e 100644
> --- a/drivers/mfd/axp20x.c
> +++ b/drivers/mfd/axp20x.c
> @@ -178,6 +178,12 @@ static struct resource axp288_power_button_resources[] = {
> },
> };
>
> +static struct resource axp20x_ac_power_supply_resources[] = {
> + DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_PLUGIN, "ACIN_PLUGIN"),
> + DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_REMOVAL, "ACIN_REMOVAL"),
> + DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_OVER_V, "ACIN_OVER_V"),
> +};
> +

Please group the resources by family, i.e. put this one above
axp20x_pek_resources.

> static struct resource axp288_fuel_gauge_resources[] = {
> {
> .start = AXP288_IRQ_QWBTU,
> @@ -440,6 +446,11 @@ static struct mfd_cell axp20x_cells[] = {
> .of_compatible = "x-powers,axp202-usb-power-supply",
> .num_resources = ARRAY_SIZE(axp20x_usb_power_supply_resources),
> .resources = axp20x_usb_power_supply_resources,
> + }, {
> + .name = "axp20x-ac-power-supply",
> + .of_compatible = "x-powers,axp202-ac-power-supply",
> + .num_resources = ARRAY_SIZE(axp20x_ac_power_supply_resources),
> + .resources = axp20x_ac_power_supply_resources,

I would put this before "x-powers,axp202-usb-power-supply", as it's the primary
power supply, but keeping the power supplies grouped. The list is already out of
alphabetic order anyway.

ChenYu

> },
> };
>
> --
> 2.8.0
>

Michael Haas

unread,
May 1, 2016, 10:24:27 AM5/1/16
to we...@csie.org, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi ChenYu,

i believe Maxime Ripard requested that these defines be moved to the
header: https://groups.google.com/d/msg/linux-sunxi/nEUg87cV6KI/TvdB6MBZBAAJ

What do you think?

Thanks for the review!

Michael

Chen-Yu Tsai

unread,
May 1, 2016, 9:35:25 PM5/1/16
to Michael Haas, Chen-Yu Tsai, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
My argument is kind of weak, and really comes down to preference.

Currently the register bit definitions are scattered in various drivers,
which is fine given they are really specific to the part of hardware the
driver supports. Gathering them all together might increase the size of
the header file substantially. As I see it the chanses that bits from
one part are going to be used in another are rather small.

Some register address macros are shared, such as for the 2 power supply
drivers, and for the regmap definitions. So those would need to go in a
shared header anyway.


Regards
ChenYu

Maxime Ripard

unread,
May 4, 2016, 2:08:52 PM5/4/16
to Chen-Yu Tsai, Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
Hi,
Sorry for the misunderstanding. I was assuming that having all the
registers and associated bits would be better off in a common header
where all the drivers could refer to, but you're the maintainer on
that on, so it's up to you ;)

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
signature.asc

Michael Haas

unread,
May 5, 2016, 6:35:21 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
This version of the axp20x-ac driver hopefully cleans up all issues
found in version 1.

I have enabled the AC and USB power supply drivers in axp209.dtsi as
suggested by Maxime Ripard and Chen-Yu Tsai

Changes in v3:

* Move register definitions back from MFD header to driver itself
* Globally enable AC power supply driver in axp209.dtsi
* Additionally enable USB power supply driver in axp209.dtsi
* Fix formatting and ordering issues noted by Chen-Yu Tsai
* Drop Rob Herring's ACKED-BY on the binding documentation patch as I have
simplified the example

Changes in v2:

Michael Haas

unread,
May 5, 2016, 6:35:23 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
This adds a driver for the ac power_supply bits of the axp20x
PMICs.

This submission is taken directly from Bruno Prémonts 2015 RFC [0].
The original RFC contains drivers for AC, battery and backup
battery. This commit only adds the AC driver for now.

[0] http://permalink.gmane.org/gmane.comp.hardware.netbook.arm.sunxi/17980

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
drivers/power/Makefile | 2 +-
drivers/power/axp20x_ac_power.c | 181 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 182 insertions(+), 1 deletion(-)
create mode 100644 drivers/power/axp20x_ac_power.c

diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index e46b75d..3a785cc 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -9,7 +9,7 @@ obj-$(CONFIG_GENERIC_ADC_BATTERY) += generic-adc-battery.o

obj-$(CONFIG_PDA_POWER) += pda_power.o
obj-$(CONFIG_APM_POWER) += apm_power.o
-obj-$(CONFIG_AXP20X_POWER) += axp20x_usb_power.o
+obj-$(CONFIG_AXP20X_POWER) += axp20x_usb_power.o axp20x_ac_power.o
obj-$(CONFIG_MAX8925_POWER) += max8925_power.o
obj-$(CONFIG_WM831X_BACKUP) += wm831x_backup.o
obj-$(CONFIG_WM831X_POWER) += wm831x_power.o
diff --git a/drivers/power/axp20x_ac_power.c b/drivers/power/axp20x_ac_power.c
new file mode 100644
index 0000000..0d1ca0e
--- /dev/null
+++ b/drivers/power/axp20x_ac_power.c
@@ -0,0 +1,181 @@
+/*
+ * AXP20x PMIC AC power driver
+ *
+ * Copyright 2014-2015 Bruno Prémont <bon...@linux-vserver.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/mfd/axp20x.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/power_supply.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+#define DRVNAME "axp20x-ac-power"
+
+
+/* Fields of AXP20X_PWR_INPUT_STATUS */
+#define AXP20X_PWR_STATUS_AC_PRESENT BIT(7)
+#define AXP20X_PWR_STATUS_AC_AVAILABLE BIT(6)
+#define AXP20X_PWR_STATUS_AC_VBUS_SHORT BIT(1)
+#define AXP20X_PWR_STATUS_AC_VBUS_SEL BIT(0)
+
+/* Fields of AXP20X_ADC_EN1 */
+#define AXP20X_ADC_EN1_ACIN_VOLT BIT(5)
+#define AXP20X_ADC_EN1_ACIN_CURR BIT(4)
+
2.8.2

Michael Haas

unread,
May 5, 2016, 6:35:23 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
As a counterpart to the usb power_supply cell, this commit adds an AC
power_supply cell to the axp20x driver.

Still missing are the RTC backup battery and the main battery charger
cells.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
drivers/mfd/axp20x.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
index a57d6e9..aa6ef08 100644
--- a/drivers/mfd/axp20x.c
+++ b/drivers/mfd/axp20x.c
@@ -128,6 +128,12 @@ static struct resource axp152_pek_resources[] = {
DEFINE_RES_IRQ_NAMED(AXP152_IRQ_PEK_FAL_EDGE, "PEK_DBF"),
};

+static struct resource axp20x_ac_power_supply_resources[] = {
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_PLUGIN, "ACIN_PLUGIN"),
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_REMOVAL, "ACIN_REMOVAL"),
+ DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_OVER_V, "ACIN_OVER_V"),
+};
+
static struct resource axp20x_pek_resources[] = {
{
.name = "PEK_DBR",
@@ -436,6 +442,11 @@ static struct mfd_cell axp20x_cells[] = {
}, {
.name = "axp20x-regulator",
}, {
+ .name = "axp20x-ac-power-supply",
+ .of_compatible = "x-powers,axp202-ac-power-supply",
+ .num_resources = ARRAY_SIZE(axp20x_ac_power_supply_resources),
+ .resources = axp20x_ac_power_supply_resources,
+ }, {
.name = "axp20x-usb-power-supply",
.of_compatible = "x-powers,axp202-usb-power-supply",
.num_resources = ARRAY_SIZE(axp20x_usb_power_supply_resources),
--
2.8.2

Michael Haas

unread,
May 5, 2016, 6:35:25 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
Add binding documentation for the ac power supply part of the AXP20x
pmic.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
.../bindings/power_supply/axp20x_ac_power.txt | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt

diff --git a/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt b/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt
new file mode 100644
index 0000000..1cebe35
--- /dev/null
+++ b/Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt
@@ -0,0 +1,17 @@
+AXP20x AC power supply
+
+Required Properties:
+-compatible: "x-powers,axp202-ac-power-supply"
+
+This node is a subnode of the axp20x PMIC.
+
+Example:
+
+axp209: pmic@34 {
+
+ ac-power-supply: ac-power-supply {
+ compatible = "x-powers,axp202-ac-power-supply";
+ };
+
+ ...
+};
--
2.8.2

Michael Haas

unread,
May 5, 2016, 6:35:25 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
Add a node representing the ac power supply part of the axp209 pmic.

This node is enabled by default. A device is likely to have an AC power
connection. If the AC power is indeed absent, the ac power driver
will simply report the power input as offline.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
arch/arm/boot/dts/axp209.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 051ab3b..7deb7d9 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -90,8 +90,14 @@
};
};

+ ac_power_supply: ac_power_supply {
+ compatible = "x-powers,axp202-ac-power-supply";
+ status = "okay";
+ };
+
usb_power_supply: usb_power_supply {
compatible = "x-powers,axp202-usb-power-supply";
status = "disabled";
};
+
};
--
2.8.2

Michael Haas

unread,
May 5, 2016, 6:35:27 AM5/5/16
to rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Michael Haas
This node should be enabled by default. A device is likely to have an USB power
connection. If USB power is indeed absent, the USB power driver
will simply report the power input as offline.

Signed-off-by: Michael Haas <ha...@computerlinguist.org>
---
arch/arm/boot/dts/axp209.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 7deb7d9..4f16be0 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -97,7 +97,7 @@

usb_power_supply: usb_power_supply {
compatible = "x-powers,axp202-usb-power-supply";
- status = "disabled";
+ status = "okay";
};

};
--
2.8.2

Hans de Goede

unread,
May 5, 2016, 6:40:01 AM5/5/16
to Michael Haas, rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
Hi,

On 05-05-16 12:35, Michael Haas wrote:
> This node should be enabled by default. A device is likely to have an USB power
> connection. If USB power is indeed absent, the USB power driver
> will simply report the power input as offline.

Nack, as Maxime already said we do not want to enable any optional
features by default. Many top set boxes do not use the usb power supply,
and we don't want some userspace power control panel applet showing
the supply as offline, we want the supply to simply not be there.

Regards,

Hans

Hans de Goede

unread,
May 5, 2016, 6:41:15 AM5/5/16
to Michael Haas, rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
Hi,

On 05-05-16 12:35, Michael Haas wrote:
> Add a node representing the ac power supply part of the axp209 pmic.
>
> This node is enabled by default. A device is likely to have an AC power
> connection. If the AC power is indeed absent, the ac power driver
> will simply report the power input as offline.
>
> Signed-off-by: Michael Haas <ha...@computerlinguist.org>
> ---
> arch/arm/boot/dts/axp209.dtsi | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
> index 051ab3b..7deb7d9 100644
> --- a/arch/arm/boot/dts/axp209.dtsi
> +++ b/arch/arm/boot/dts/axp209.dtsi
> @@ -90,8 +90,14 @@
> };
> };
>
> + ac_power_supply: ac_power_supply {
> + compatible = "x-powers,axp202-ac-power-supply";
> + status = "okay";
> + };
> +

Default status needs to be disabled, many tablets have only
a micro/mini usb-b connector which is also used for charging
and do not have a separate ac 5V in connector.

Regards,

Hans

Michael Haas

unread,
May 5, 2016, 6:46:34 AM5/5/16
to Hans de Goede, rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
Hi Hans,

On 05/05/2016 12:39 PM, Hans de Goede wrote:
> Hi,
>
> On 05-05-16 12:35, Michael Haas wrote:
>> This node should be enabled by default. A device is likely to have an
>> USB power
>> connection. If USB power is indeed absent, the USB power driver
>> will simply report the power input as offline.
>
> Nack, as Maxime already said we do not want to enable any optional
> features by default. Many top set boxes do not use the usb power supply,
> and we don't want some userspace power control panel applet showing
> the supply as offline, we want the supply to simply not be there.

it was my understanding that Maxime [0] and ChenYu [1] indicated they
would prefer it to be enabled globally.

Best,

Michael

[0] https://groups.google.com/d/msg/linux-sunxi/cHAlhoIw74g/CbBeoX23AAAJ
[1] https://groups.google.com/d/msg/linux-sunxi/Ee7i8DVI4F8/0b0TBrRkAAAJ

Hans de Goede

unread,
May 5, 2016, 1:24:57 PM5/5/16
to Michael Haas, rob...@kernel.org, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com, Maxime Ripard, Chen-Yu Tsai
Hi,

On 05-05-16 12:46, Michael Haas wrote:
> Hi Hans,
>
> On 05/05/2016 12:39 PM, Hans de Goede wrote:
>> Hi,
>>
>> On 05-05-16 12:35, Michael Haas wrote:
>>> This node should be enabled by default. A device is likely to have an
>>> USB power
>>> connection. If USB power is indeed absent, the USB power driver
>>> will simply report the power input as offline.
>>
>> Nack, as Maxime already said we do not want to enable any optional
>> features by default. Many top set boxes do not use the usb power supply,
>> and we don't want some userspace power control panel applet showing
>> the supply as offline, we want the supply to simply not be there.
>
> it was my understanding that Maxime [0] and ChenYu [1] indicated they
> would prefer it to be enabled globally.

I believe you're misreading what Maxime is saying, let me
pair things up as I believe they are meant to be interpreted:

You say: "do you have any preference for this being in the AXP209 dtsi? ..."

Maxime says: "Yes, I'd prefer that a lot :)"


You say: "I've been thinking about it and it makes sense to enable the power
supply nodes for all devices using the AXP209."

Maxime says: "It avoids enabling it on all the boards."

IOW having the "status = disabled" in the dtsi avoids enabling it on all
the boards".

I'm pretty sure this is what Maxime's intentions are.


It seems that Chen-Yu does agree with you:

"I see no reason why we shouldn't just enable it by default.
It is almost always going to be used. Same for the VBUS power supply."

Chen-Yu, I disagree with this, IIRC we've had this discussion multiple
times, and so far the rule has always been that we do not want negatives
in the per board dts files. IOW we do not want people to have to add
status = "disabled" to dts files when the usb or ac power supply is not
used, since they are likely to forgot and it just makes the dts files
harder to read in general.

And boards without usb-power (many A10 / A20 / A31 set-top boxes), or
without ac-power (quite a few tablets) are more common then you think.

Regards,

Hans

Rob Herring

unread,
May 5, 2016, 6:31:05 PM5/5/16
to Michael Haas, pawel...@arm.com, mark.r...@arm.com, ijc+dev...@hellion.org.uk, ga...@codeaurora.org, maxime...@free-electrons.com, we...@csie.org, lee....@linaro.org, s...@kernel.org, dbary...@gmail.com, dw...@infradead.org, hdeg...@redhat.com, bon...@linux-vserver.org, devic...@vger.kernel.org, linu...@vger.kernel.org, li...@arm.linux.org.uk, linux...@googlegroups.com
On Thu, May 05, 2016 at 12:35:06PM +0200, Michael Haas wrote:
> Add binding documentation for the ac power supply part of the AXP20x
> pmic.
>
> Signed-off-by: Michael Haas <ha...@computerlinguist.org>
> ---
> .../bindings/power_supply/axp20x_ac_power.txt | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/power_supply/axp20x_ac_power.txt

Acked-by: Rob Herring <ro...@kernel.org>

Chen-Yu Tsai

unread,
May 5, 2016, 10:33:27 PM5/5/16
to Michael Haas, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, Rob Herring, linux-sunxi
Acked-by: Chen-Yu Tsai <we...@csie.org>

Chen-Yu Tsai

unread,
May 5, 2016, 10:48:32 PM5/5/16
to Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Hans De Goede, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
On Thu, May 5, 2016 at 6:35 PM, Michael Haas <ha...@computerlinguist.org> wrote:
> As a counterpart to the usb power_supply cell, this commit adds an AC
> power_supply cell to the axp20x driver.
>
> Still missing are the RTC backup battery and the main battery charger
> cells.
>
> Signed-off-by: Michael Haas <ha...@computerlinguist.org>

Acked-by: Chen-Yu Tsai <we...@csie.org>

Chen-Yu Tsai

unread,
May 5, 2016, 10:48:45 PM5/5/16
to Hans de Goede, Michael Haas, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Maxime Ripard, Chen-Yu Tsai, Lee Jones, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Bruno Prémont, devicetree, linu...@vger.kernel.org, Russell King - ARM Linux, linux-sunxi
I see. Both are very valid points. I'll keep that in mind.

Michael, please drop this one and also set status = "disabled" for
the ac power supply in axp209.dtsi.

Sorry for the noise.

ChenYu
Reply all
Reply to author
Forward
0 new messages