[linux-sunxi] [PATCH v4 08/13] power: supply: axp20x_battery: add support for AXP813

2018-02-19 Thread Quentin Schulz
The X-Powers AXP813 PMIC has got some slight differences from
AXP20X/AXP22X PMICs:
 - the maximum voltage supplied by the PMIC is 4.35 instead of 4.36/4.24
 for AXP20X/AXP22X,
 - the constant charge current formula is different,

It also has a bit to tell whether the battery percentage returned by the
PMIC is valid.

Signed-off-by: Quentin Schulz 
Reviewed-by: Chen-Yu Tsai 
---
 drivers/power/supply/axp20x_battery.c | 42 -
 1 file changed, 42 insertions(+)

diff --git a/drivers/power/supply/axp20x_battery.c 
b/drivers/power/supply/axp20x_battery.c
index 099e785..b1a4c41 100644
--- a/drivers/power/supply/axp20x_battery.c
+++ b/drivers/power/supply/axp20x_battery.c
@@ -49,6 +49,8 @@
 #define AXP22X_CHRG_CTRL1_TGT_4_22V(1 << 5)
 #define AXP22X_CHRG_CTRL1_TGT_4_24V(3 << 5)
 
+#define AXP813_CHRG_CTRL1_TGT_4_35V(3 << 5)
+
 #define AXP20X_CHRG_CTRL1_TGT_CURR GENMASK(3, 0)
 
 #define AXP20X_V_OFF_MASK  GENMASK(2, 0)
@@ -133,6 +135,35 @@ static int axp22x_battery_get_max_voltage(struct 
axp20x_batt_ps *axp20x_batt,
return 0;
 }
 
+static int axp813_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
+ int *val)
+{
+   int ret, reg;
+
+   ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, );
+   if (ret)
+   return ret;
+
+   switch (reg & AXP20X_CHRG_CTRL1_TGT_VOLT) {
+   case AXP20X_CHRG_CTRL1_TGT_4_1V:
+   *val = 410;
+   break;
+   case AXP20X_CHRG_CTRL1_TGT_4_15V:
+   *val = 415;
+   break;
+   case AXP20X_CHRG_CTRL1_TGT_4_2V:
+   *val = 420;
+   break;
+   case AXP813_CHRG_CTRL1_TGT_4_35V:
+   *val = 435;
+   break;
+   default:
+   return -EINVAL;
+   }
+
+   return 0;
+}
+
 static int axp20x_get_constant_charge_current(struct axp20x_batt_ps *axp,
  int *val)
 {
@@ -491,6 +522,14 @@ const struct axp_data axp221_data = {
.set_max_voltage = axp22x_battery_set_max_voltage,
 };
 
+const struct axp_data axp813_data = {
+   .ccc_scale = 20,
+   .ccc_offset = 20,
+   .has_fg_valid = true,
+   .get_max_voltage = axp813_battery_get_max_voltage,
+   .set_max_voltage = axp20x_battery_set_max_voltage,
+};
+
 static const struct of_device_id axp20x_battery_ps_id[] = {
{
.compatible = "x-powers,axp209-battery-power-supply",
@@ -498,6 +537,9 @@ static const struct of_device_id axp20x_battery_ps_id[] = {
}, {
.compatible = "x-powers,axp221-battery-power-supply",
.data = (void *)_data,
+   }, {
+   .compatible = "x-powers,axp813-battery-power-supply",
+   .data = (void *)_data,
}, { /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, axp20x_battery_ps_id);
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 13/13] iio: adc: axp20x_adc: remove !! in favor of ternary condition

2018-02-19 Thread Quentin Schulz
!!'s behaviour isn't that obvious and sparse complained about it, so
let's replace it with a ternary condition.

Signed-off-by: Quentin Schulz 
---
 drivers/iio/adc/axp20x_adc.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/adc/axp20x_adc.c b/drivers/iio/adc/axp20x_adc.c
index a30a972..7a745cf 100644
--- a/drivers/iio/adc/axp20x_adc.c
+++ b/drivers/iio/adc/axp20x_adc.c
@@ -365,7 +365,7 @@ static int axp20x_adc_offset_voltage(struct iio_dev 
*indio_dev, int channel,
return -EINVAL;
}
 
-   *val = !!(*val) * 70;
+   *val = *val ? 70 : 0;
 
return IIO_VAL_INT;
 }
@@ -442,15 +442,17 @@ static int axp20x_write_raw(struct iio_dev *indio_dev,
if (val != 0 && val != 70)
return -EINVAL;
 
+   val = val ? 1 : 0;
+
switch (chan->channel) {
case AXP20X_GPIO0_V:
reg = AXP20X_GPIO10_IN_RANGE_GPIO0;
-   regval = AXP20X_GPIO10_IN_RANGE_GPIO0_VAL(!!val);
+   regval = AXP20X_GPIO10_IN_RANGE_GPIO0_VAL(val);
break;
 
case AXP20X_GPIO1_V:
reg = AXP20X_GPIO10_IN_RANGE_GPIO1;
-   regval = AXP20X_GPIO10_IN_RANGE_GPIO1_VAL(!!val);
+   regval = AXP20X_GPIO10_IN_RANGE_GPIO1_VAL(val);
break;
 
default:
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 09/13] mfd: axp20x: add battery power supply cell for AXP813

2018-02-19 Thread Quentin Schulz
As axp20x-battery-power-supply now supports AXP813, add a cell for it.

Signed-off-by: Quentin Schulz 
Acked-for-MFD-by: Lee Jones 
Reviewed-by: Chen-Yu Tsai 
---
 drivers/mfd/axp20x.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
index e5516aa..aaf2acb 100644
--- a/drivers/mfd/axp20x.c
+++ b/drivers/mfd/axp20x.c
@@ -888,6 +888,9 @@ static struct mfd_cell axp813_cells[] = {
}, {
.name   = "axp813-adc",
.of_compatible  = "x-powers,axp813-adc",
+   }, {
+   .name   = "axp20x-battery-power-supply",
+   .of_compatible  = "x-powers,axp813-battery-power-supply",
},
 };
 
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 00/13] add support for AXP813 ADC and battery power supply

2018-02-19 Thread Quentin Schulz
The AXP813 PMIC is relatively close to the already supported AXP20X and
AXP22X. It provides three different power outputs: battery, AC and USB, and
measures a few different things: temperature, power supply status, current
current and voltage supplied, maximum current limit, battery capacity, min
and max voltage limits.

One of its two GPIOs can be used as an ADC.

There are a few differences with AXP20X/AXP22X PMICs though:
  - a different constant charge current formula,
  - battery temperature, GPIO0 and battery voltages are the only voltages
  measurable,
  - all data are stored on 12 bits (AXP20X/AXP22X had one type of data that
  was stored on 13 bits),
  - different scales and offsets,
  - a different ADC rate formula and register,

This patch series adds support for the PMIC's ADC and battery power supply
in the existing drivers.

Make the axp20x MFD automatically probe the ADC driver, add the battery
power supply node in axp81x node and enable it for the TBS A711 since it
has a soldered battery.

I suggest patches:
  - 1,2,4,10,11,12 go through Maxime and Chen-Yu's tree,
  - 13 go through Jonathan's tree,
  - 3,5,9 go through Lee's tree,
  - 6,7,8 go through Sebastian's tree,

v4:
  - shortened one commit title as a workaround to Chen-Yu note,
  - added const to data structures as proposed by Chen-Yu,
  - added last patch for making sparse happy, on a proposal from Jonathan,
  - removed already applied patches (IIO ones),

v3:
  - merging dt-bindings patches for axp_adc as requested by Rob,
  - re-ordered constant in IIO driver as requested by Julian,
  - compatibles for ADC are now named after the first design that
  introduced the IP instead of wildcard as requested by Maxime,
  - renamed DT node name from axp-adc to adc as requested by Rob,
  - replaced enumeration of supported PMICs in battery power supply DT
  bindings documentation by "supported devices" as requested by Jonathan,
  - added a new patch for removing "axp-" from axp81x's pinctrl DT node,

v2:
  - introduce data structure instead of ID for variant specific code in
  battery driver,
  - add DT binding for ADC driver,
  - make mfd probe the ADC driver via DT as well so that its IIO channels
  can be consumed by other drivers via DT mapping,

Thanks,
Quentin

Quentin Schulz (13):
  ARM: dtsi: axp209: add node for ADC
  ARM: dtsi: axp22x: add node for ADC
  mfd: axp20x: make AXP209/22x cells probe their ADC via DT
  ARM: dtsi: axp81x: add node for ADC
  mfd: axp20x: probe axp20x_adc driver for AXP813
  power: supply: axp20x_battery: use data struct for variant specific code
  dt-bindings: power: supply: axp20x: add AXP813 battery DT binding
  power: supply: axp20x_battery: add support for AXP813
  mfd: axp20x: add battery power supply cell for AXP813
  ARM: dtsi: axp81x: add battery power supply subnode
  ARM: dtsi: sun8i: a711: enable battery power supply subnode
  ARM: dtsi: axp81x: remove IP name from DT node name
  iio: adc: axp20x_adc: remove !! in favor of ternary condition

 Documentation/devicetree/bindings/power/supply/axp20x_battery.txt |   8 ++--
 arch/arm/boot/dts/axp209.dtsi |   5 +++-
 arch/arm/boot/dts/axp22x.dtsi |   5 +++-
 arch/arm/boot/dts/axp81x.dtsi |  12 +-
 arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts |   4 ++-
 drivers/iio/adc/axp20x_adc.c  |   8 ++--
 drivers/mfd/axp20x.c  |  13 +--
 drivers/power/supply/axp20x_battery.c | 134 
+++-
 8 files changed, 149 insertions(+), 40 deletions(-)

base-commit: c4fb39f307d40fa088ebd39573f8d8d6c4388826
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 03/13] mfd: axp20x: make AXP209/22x cells probe their ADC via DT

2018-02-19 Thread Quentin Schulz
This makes AXP209 and AXP22x ADCs probe first via DT and then by
fallback via platform.

Signed-off-by: Quentin Schulz 
Acked-for-MFD-by: Lee Jones 
Acked-by: Chen-Yu Tsai 
---
 drivers/mfd/axp20x.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
index e94c72c..1977a03 100644
--- a/drivers/mfd/axp20x.c
+++ b/drivers/mfd/axp20x.c
@@ -660,6 +660,7 @@ static struct mfd_cell axp20x_cells[] = {
.name   = "axp20x-regulator",
}, {
.name   = "axp20x-adc",
+   .of_compatible  = "x-powers,axp209-adc",
}, {
.name   = "axp20x-battery-power-supply",
.of_compatible  = "x-powers,axp209-battery-power-supply",
@@ -684,7 +685,8 @@ static struct mfd_cell axp221_cells[] = {
}, {
.name   = "axp20x-regulator",
}, {
-   .name   = "axp22x-adc"
+   .name   = "axp22x-adc",
+   .of_compatible  = "x-powers,axp221-adc",
}, {
.name   = "axp20x-ac-power-supply",
.of_compatible  = "x-powers,axp221-ac-power-supply",
@@ -708,6 +710,7 @@ static struct mfd_cell axp223_cells[] = {
.resources  = axp22x_pek_resources,
}, {
.name   = "axp22x-adc",
+   .of_compatible  = "x-powers,axp221-adc",
}, {
.name   = "axp20x-battery-power-supply",
.of_compatible  = "x-powers,axp221-battery-power-supply",
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 06/13] power: supply: axp20x_battery: use data struct for variant specific code

2018-02-19 Thread Quentin Schulz
We used to use IDs to select a function or a feature depending on the
variant. It's easier to maintain the code by adding data structure
storing the few differences between variants so that we don't add a pile
of if conditions.

Let's use this data structure and update the code to use it.

Signed-off-by: Quentin Schulz 
Reviewed-by: Chen-Yu Tsai 
---
 drivers/power/supply/axp20x_battery.c | 100 +--
 1 file changed, 66 insertions(+), 34 deletions(-)

diff --git a/drivers/power/supply/axp20x_battery.c 
b/drivers/power/supply/axp20x_battery.c
index 7494f0f..099e785 100644
--- a/drivers/power/supply/axp20x_battery.c
+++ b/drivers/power/supply/axp20x_battery.c
@@ -53,6 +53,16 @@
 
 #define AXP20X_V_OFF_MASK  GENMASK(2, 0)
 
+struct axp20x_batt_ps;
+
+struct axp_data {
+   int ccc_scale;
+   int ccc_offset;
+   boolhas_fg_valid;
+   int (*get_max_voltage)(struct axp20x_batt_ps *batt, int *val);
+   int (*set_max_voltage)(struct axp20x_batt_ps *batt, int val);
+};
+
 struct axp20x_batt_ps {
struct regmap *regmap;
struct power_supply *batt;
@@ -62,7 +72,7 @@ struct axp20x_batt_ps {
struct iio_channel *batt_v;
/* Maximum constant charge current */
unsigned int max_ccc;
-   u8 axp_id;
+   const struct axp_data   *data;
 };
 
 static int axp20x_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
@@ -123,22 +133,6 @@ static int axp22x_battery_get_max_voltage(struct 
axp20x_batt_ps *axp20x_batt,
return 0;
 }
 
-static void raw_to_constant_charge_current(struct axp20x_batt_ps *axp, int 
*val)
-{
-   if (axp->axp_id == AXP209_ID)
-   *val = *val * 10 + 30;
-   else
-   *val = *val * 15 + 30;
-}
-
-static void constant_charge_current_to_raw(struct axp20x_batt_ps *axp, int 
*val)
-{
-   if (axp->axp_id == AXP209_ID)
-   *val = (*val - 30) / 10;
-   else
-   *val = (*val - 30) / 15;
-}
-
 static int axp20x_get_constant_charge_current(struct axp20x_batt_ps *axp,
  int *val)
 {
@@ -150,7 +144,7 @@ static int axp20x_get_constant_charge_current(struct 
axp20x_batt_ps *axp,
 
*val &= AXP20X_CHRG_CTRL1_TGT_CURR;
 
-   raw_to_constant_charge_current(axp, val);
+   *val = *val * axp->data->ccc_scale + axp->data->ccc_offset;
 
return 0;
 }
@@ -269,8 +263,7 @@ static int axp20x_battery_get_prop(struct power_supply *psy,
if (ret)
return ret;
 
-   if (axp20x_batt->axp_id == AXP221_ID &&
-   !(reg & AXP22X_FG_VALID))
+   if (axp20x_batt->data->has_fg_valid && !(reg & AXP22X_FG_VALID))
return -EINVAL;
 
/*
@@ -281,11 +274,8 @@ static int axp20x_battery_get_prop(struct power_supply 
*psy,
break;
 
case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
-   if (axp20x_batt->axp_id == AXP209_ID)
-   return axp20x_battery_get_max_voltage(axp20x_batt,
- >intval);
-   return axp22x_battery_get_max_voltage(axp20x_batt,
- >intval);
+   return axp20x_batt->data->get_max_voltage(axp20x_batt,
+ >intval);
 
case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
ret = regmap_read(axp20x_batt->regmap, AXP20X_V_OFF, );
@@ -312,6 +302,32 @@ static int axp20x_battery_get_prop(struct power_supply 
*psy,
return 0;
 }
 
+static int axp22x_battery_set_max_voltage(struct axp20x_batt_ps *axp20x_batt,
+ int val)
+{
+   switch (val) {
+   case 410:
+   val = AXP20X_CHRG_CTRL1_TGT_4_1V;
+   break;
+
+   case 420:
+   val = AXP20X_CHRG_CTRL1_TGT_4_2V;
+   break;
+
+   default:
+   /*
+* AXP20x max voltage can be set to 4.36V and AXP22X max voltage
+* can be set to 4.22V and 4.24V, but these voltages are too
+* high for Lithium based batteries (AXP PMICs are supposed to
+* be used with these kinds of battery).
+*/
+   return -EINVAL;
+   }
+
+   return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
+ AXP20X_CHRG_CTRL1_TGT_VOLT, val);
+}
+
 static int axp20x_battery_set_max_voltage(struct axp20x_batt_ps *axp20x_batt,
  int val)
 {
@@ -321,9 +337,6 @@ static int axp20x_battery_set_max_voltage(struct 
axp20x_batt_ps *axp20x_batt,
break;
 
case 415:
-   if (axp20x_batt->axp_id == AXP221_ID)
-   

[linux-sunxi] [PATCH v4 12/13] ARM: dtsi: axp81x: remove IP name from DT node name

2018-02-19 Thread Quentin Schulz
The DT node should be named after its functionality and not after the
IP it's defining.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/axp81x.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/axp81x.dtsi b/arch/arm/boot/dts/axp81x.dtsi
index 1b05c7f..043c717 100644
--- a/arch/arm/boot/dts/axp81x.dtsi
+++ b/arch/arm/boot/dts/axp81x.dtsi
@@ -53,7 +53,7 @@
#io-channel-cells = <1>;
};
 
-   axp_gpio: axp-gpio {
+   axp_gpio: gpio {
compatible = "x-powers,axp813-gpio";
gpio-controller;
#gpio-cells = <2>;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 01/13] ARM: dtsi: axp209: add node for ADC

2018-02-19 Thread Quentin Schulz
This adds a DT node for the ADC of the PMIC so that there can be
consumers of its IIO channels declaring their consumptions via DT.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/axp209.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 897103e..0d9ff12 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -58,6 +58,11 @@
status = "disabled";
};
 
+   axp_adc: adc {
+   compatible = "x-powers,axp209-adc";
+   #io-channel-cells = <1>;
+   };
+
axp_gpio: gpio {
compatible = "x-powers,axp209-gpio";
gpio-controller;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 10/13] ARM: dtsi: axp81x: add battery power supply subnode

2018-02-19 Thread Quentin Schulz
The X-Powers AXP81X PMIC exposes battery supply various data such as
the battery status (charging, discharging, full, dead), current max
limit, current current, battery capacity (in percentage), voltage max
and min limits, current voltage, and battery capacity (in Ah).

This adds the battery power supply subnode for AXP81X PMIC.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/axp81x.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/axp81x.dtsi b/arch/arm/boot/dts/axp81x.dtsi
index 6b5e7bc..1b05c7f 100644
--- a/arch/arm/boot/dts/axp81x.dtsi
+++ b/arch/arm/boot/dts/axp81x.dtsi
@@ -69,6 +69,11 @@
};
};
 
+   battery_power_supply: battery-power-supply {
+   compatible = "x-powers,axp813-battery-power-supply";
+   status = "disabled";
+   };
+
regulators {
/* Default work frequency for buck regulators */
x-powers,dcdc-freq = <3000>;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 04/13] ARM: dtsi: axp81x: add node for ADC

2018-02-19 Thread Quentin Schulz
This adds a DT node for the ADC of the PMIC so that there can be
consumers of its IIO channels declaring their consumptions via DT.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/axp81x.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/axp81x.dtsi b/arch/arm/boot/dts/axp81x.dtsi
index fd55b89..6b5e7bc 100644
--- a/arch/arm/boot/dts/axp81x.dtsi
+++ b/arch/arm/boot/dts/axp81x.dtsi
@@ -48,6 +48,11 @@
interrupt-controller;
#interrupt-cells = <1>;
 
+   axp_adc: adc {
+   compatible = "x-powers,axp813-adc";
+   #io-channel-cells = <1>;
+   };
+
axp_gpio: axp-gpio {
compatible = "x-powers,axp813-gpio";
gpio-controller;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 11/13] ARM: dtsi: sun8i: a711: enable battery power supply subnode

2018-02-19 Thread Quentin Schulz
The TBS A711 has an AXP813 PMIC and a soldered battery, thus, we enable
the battery power supply subnode in its Device Tree.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | 4 
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts 
b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
index 511fca4..1de362f 100644
--- a/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
@@ -231,6 +231,10 @@
 
 #include "axp81x.dtsi"
 
+_power_supply {
+   status = "okay";
+};
+
 _aldo1 {
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 02/13] ARM: dtsi: axp22x: add node for ADC

2018-02-19 Thread Quentin Schulz
This adds a DT node for the ADC of the PMIC so that there can be
consumers of its IIO channels declaring their consumptions via DT.

Signed-off-by: Quentin Schulz 
Acked-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/axp22x.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/axp22x.dtsi b/arch/arm/boot/dts/axp22x.dtsi
index 87fb08e..65a07a6 100644
--- a/arch/arm/boot/dts/axp22x.dtsi
+++ b/arch/arm/boot/dts/axp22x.dtsi
@@ -57,6 +57,11 @@
status = "disabled";
};
 
+   axp_adc: adc {
+   compatible = "x-powers,axp221-adc";
+   #io-channel-cells = <1>;
+   };
+
battery_power_supply: battery-power-supply {
compatible = "x-powers,axp221-battery-power-supply";
status = "disabled";
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 07/13] dt-bindings: power: supply: axp20x: add AXP813 battery DT binding

2018-02-19 Thread Quentin Schulz
The AXP813 can have a battery as power supply, so let's add it to the
list of compatibles.

Signed-off-by: Quentin Schulz 
Reviewed-by: Rob Herring 
Acked-by: Chen-Yu Tsai 
---
 Documentation/devicetree/bindings/power/supply/axp20x_battery.txt | 8 +++
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/power/supply/axp20x_battery.txt 
b/Documentation/devicetree/bindings/power/supply/axp20x_battery.txt
index c248866..41916f6 100644
--- a/Documentation/devicetree/bindings/power/supply/axp20x_battery.txt
+++ b/Documentation/devicetree/bindings/power/supply/axp20x_battery.txt
@@ -4,12 +4,12 @@ Required Properties:
  - compatible, one of:
"x-powers,axp209-battery-power-supply"
"x-powers,axp221-battery-power-supply"
+   "x-powers,axp813-battery-power-supply"
 
-This node is a subnode of the axp20x/axp22x PMIC.
+This node is a subnode of its respective PMIC DT node.
 
-The AXP20X and AXP22X can read the battery voltage, charge and discharge
-currents of the battery by reading ADC channels from the AXP20X/AXP22X
-ADC.
+The supported devices can read the battery voltage, charge and discharge
+currents of the battery by reading ADC channels from the ADC.
 
 Example:
 
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4 05/13] mfd: axp20x: probe axp20x_adc driver for AXP813

2018-02-19 Thread Quentin Schulz
This makes the axp20x_adc driver probe with platform device id
"axp813-adc".

Signed-off-by: Quentin Schulz 
Acked-for-MFD-by: Lee Jones 
Acked-by: Chen-Yu Tsai 
---
 drivers/mfd/axp20x.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
index 1977a03..e5516aa 100644
--- a/drivers/mfd/axp20x.c
+++ b/drivers/mfd/axp20x.c
@@ -885,7 +885,10 @@ static struct mfd_cell axp813_cells[] = {
}, {
.name   = "axp20x-gpio",
.of_compatible  = "x-powers,axp813-gpio",
-   }
+   }, {
+   .name   = "axp813-adc",
+   .of_compatible  = "x-powers,axp813-adc",
+   },
 };
 
 static struct axp20x_dev *axp20x_pm_power_off;
-- 
git-series 0.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v5 05/12] drm/bridge/synopsys: dw-hdmi: don't clobber drvdata

2018-02-19 Thread Philipp Zabel
On Wed, 2018-02-14 at 21:08 +0100, Jernej Skrabec wrote:
> dw_hdmi shouldn't set drvdata since some drivers might need to store
> it's own data there. Rework dw_hdmi in a way to return struct dw_hdmi
> instead to store it in drvdata. This way drivers are responsible to
> store and pass structure when needed.
> 
> Idea was taken from the following commit:
> 8242ecbd597d ("drm/bridge/synopsys: stop clobbering drvdata")
> 
> Cc: p.za...@pengutronix.de
> Cc: narmstr...@baylibre.com
> Cc: laurent.pinch...@ideasonboard.com
> Cc: h...@rock-chips.com
> Cc: he...@sntech.de
> Acked-by: Neil Armstrong 
> Signed-off-by: Jernej Skrabec 

For i.MX:
Tested-by: Philipp Zabel 
Acked-by: Philipp Zabel 

regards
Philipp

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.