Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1452210 > unrolled thread

[PATCH v3 0/7] power: act8945a_charger: Improvements

Started byWenyou Yang <wenyou.yang@atmel.com>
First post2016-07-29 03:40 +0200
Last post2016-08-08 08:10 +0200
Articles 7 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/7] power: act8945a_charger: Improvements Wenyou Yang <wenyou.yang@atmel.com> - 2016-07-29 03:40 +0200
    [PATCH v3 3/7] power: act8945a_charger: Add status change update support Wenyou Yang <wenyou.yang@atmel.com> - 2016-07-29 03:40 +0200
    [PATCH v3 5/7] power: act8945a_charger: Add capacity level property Wenyou Yang <wenyou.yang@atmel.com> - 2016-07-29 03:50 +0200
    [PATCH v3 6/7] power: act8945a_charger: Add max current property Wenyou Yang <wenyou.yang@atmel.com> - 2016-07-29 03:50 +0200
    [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties Wenyou Yang <wenyou.yang@atmel.com> - 2016-07-29 03:50 +0200
      Re: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties Rob Herring <robh@kernel.org> - 2016-07-29 23:50 +0200
        RE: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update  properties <Wenyou.Yang@microchip.com> - 2016-08-08 08:10 +0200

#1452210 — [PATCH v3 0/7] power: act8945a_charger: Improvements

FromWenyou Yang <wenyou.yang@atmel.com>
Date2016-07-29 03:40 +0200
Subject[PATCH v3 0/7] power: act8945a_charger: Improvements
Message-ID<s04Wl-67N-9@gated-at.bofh.it>
This patch series is used to improve the act8945a-charger, such as
improve the way to check the status, fix the power supply type
property, add the status change update, and add more properties:
capacity level property and max current property.

Changes in v3:
 - Remove unneeded semicolon to fix semicolon.cocci warning.

Changes in v2:
 - Add missing ret declaration.

Wenyou Yang (7):
  power: act8945a_charger: Remove "battery_temperature"
  power: act8945a_charger: Improve
  power: act8945a_charger: Add status change update support
  power: act8945a_charger: Fix the power supply type
  power: act8945a_charger: Add capacity level property
  power: act8945a_charger: Add max current property
  doc: bindings: act8945a-charger: Update properties

 .../devicetree/bindings/power/act8945a-charger.txt |   6 +-
 drivers/power/act8945a_charger.c                   | 369 ++++++++++++++++++---
 2 files changed, 336 insertions(+), 39 deletions(-)

-- 
2.7.4

[toc] | [next] | [standalone]


#1452211 — [PATCH v3 3/7] power: act8945a_charger: Add status change update support

FromWenyou Yang <wenyou.yang@atmel.com>
Date2016-07-29 03:40 +0200
Subject[PATCH v3 3/7] power: act8945a_charger: Add status change update support
Message-ID<s04Wm-67N-17@gated-at.bofh.it>
In reply to#1452210
Add the charger status change interrupt support, it will report
the power supply changed event.

This interrupt is generated by one of the conditions as below:
 - the state machine jumps out of or into the EOC state
 - the CHGIN input voltage goes out of or into the valid range.
 - the battery temperature goes out of or into the valid range.
 - the PRECHARGE time-out occurs.
 - the total charge time-out occurs.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---

Changes in v3: None
Changes in v2: None

 drivers/power/act8945a_charger.c | 78 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 72 insertions(+), 6 deletions(-)

diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c
index 6ddfc1d..bbeb13cb 100644
--- a/drivers/power/act8945a_charger.c
+++ b/drivers/power/act8945a_charger.c
@@ -10,6 +10,7 @@
  * published by the Free Software Foundation.
  *
  */
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_gpio.h>
@@ -75,7 +76,12 @@ static const char *act8945a_charger_manufacturer = "Active-semi";
 #define APCH_STATE_CSTATE_PRE		0x03
 
 struct act8945a_charger {
+	struct power_supply *psy;
 	struct regmap *regmap;
+	struct work_struct work;
+
+	bool init_done;
+	int irq_pin;
 };
 
 static int act8945a_get_charger_state(struct regmap *regmap, int *val)
@@ -252,6 +258,47 @@ static const struct power_supply_desc act8945a_charger_desc = {
 	.num_properties	= ARRAY_SIZE(act8945a_charger_props),
 };
 
+static int act8945a_enable_interrupt(struct act8945a_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	unsigned char ctrl;
+	int ret;
+
+	ctrl = APCH_CTRL_CHGEOCOUT | APCH_CTRL_CHGEOCIN |
+	       APCH_CTRL_INDIS | APCH_CTRL_INCON |
+	       APCH_CTRL_TEMPOUT | APCH_CTRL_TEMPIN |
+	       APCH_CTRL_TIMRPRE | APCH_CTRL_TIMRTOT;
+	ret = regmap_write(regmap, ACT8945A_APCH_CTRL, ctrl);
+	if (ret)
+		return ret;
+
+	ctrl = APCH_STATUS_CHGSTAT | APCH_STATUS_INSTAT |
+	       APCH_STATUS_TEMPSTAT | APCH_STATUS_TIMRSTAT;
+	ret = regmap_write(regmap, ACT8945A_APCH_STATUS, ctrl);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static void act8945a_work(struct work_struct *work)
+{
+	struct act8945a_charger *charger =
+			container_of(work, struct act8945a_charger, work);
+
+	power_supply_changed(charger->psy);
+}
+
+static irqreturn_t act8945a_status_changed(int irq, void *dev_id)
+{
+	struct act8945a_charger *charger = dev_id;
+
+	if (charger->init_done)
+		schedule_work(&charger->work);
+
+	return IRQ_HANDLED;
+}
+
 #define DEFAULT_TOTAL_TIME_OUT		3
 #define DEFAULT_PRE_TIME_OUT		40
 #define DEFAULT_INPUT_OVP_THRESHOLD	6600
@@ -283,6 +330,18 @@ static int act8945a_charger_config(struct device *dev,
 
 	if (tmp & APCH_CFG_SUSCHG)
 		value |= APCH_CFG_SUSCHG;
+	charger->irq_pin = of_get_named_gpio(np, "active-semi,irq_gpios", 0);
+	if (gpio_is_valid(charger->irq_pin)) {
+		if (!devm_gpio_request(dev, charger->irq_pin, "irq-pin")) {
+			ret = devm_request_irq(dev,
+					       gpio_to_irq(charger->irq_pin),
+					       act8945a_status_changed,
+					       IRQF_TRIGGER_FALLING,
+					       "irq-pin", charger);
+			if (ret)
+				dev_dbg(dev, "failed to request nIRQ pin IRQ\n");
+		}
+	}
 
 	chglev_pin = of_get_named_gpio_flags(np,
 				"active-semi,chglev-gpios", 0, &flags);
@@ -360,7 +419,6 @@ static int act8945a_charger_config(struct device *dev,
 static int act8945a_charger_probe(struct platform_device *pdev)
 {
 	struct act8945a_charger *charger;
-	struct power_supply *psy;
 	struct power_supply_config psy_cfg = {};
 	int ret;
 
@@ -381,14 +439,22 @@ static int act8945a_charger_probe(struct platform_device *pdev)
 	psy_cfg.of_node	= pdev->dev.parent->of_node;
 	psy_cfg.drv_data = charger;
 
-	psy = devm_power_supply_register(&pdev->dev,
-					 &act8945a_charger_desc,
-					 &psy_cfg);
-	if (IS_ERR(psy)) {
+	charger->psy = devm_power_supply_register(&pdev->dev,
+						  &act8945a_charger_desc,
+						  &psy_cfg);
+	if (IS_ERR(charger->psy)) {
 		dev_err(&pdev->dev, "failed to register power supply\n");
-		return PTR_ERR(psy);
+		return PTR_ERR(charger->psy);
 	}
 
+	INIT_WORK(&charger->work, act8945a_work);
+
+	ret = act8945a_enable_interrupt(charger);
+	if (ret)
+		return -EIO;
+
+	charger->init_done = true;
+
 	return 0;
 }
 
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1452212 — [PATCH v3 5/7] power: act8945a_charger: Add capacity level property

FromWenyou Yang <wenyou.yang@atmel.com>
Date2016-07-29 03:50 +0200
Subject[PATCH v3 5/7] power: act8945a_charger: Add capacity level property
Message-ID<s0561-6bX-1@gated-at.bofh.it>
In reply to#1452210
Add the power supply capacity level property, it corresponds to
POWER_SUPPLY_CAPACITY_LEVEL_*.

It also utilizes the precision voltage detector function module
to catch the low battery voltage.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---

Changes in v3: None
Changes in v2: None

 drivers/power/act8945a_charger.c | 78 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c
index 465e346..74fd547 100644
--- a/drivers/power/act8945a_charger.c
+++ b/drivers/power/act8945a_charger.c
@@ -83,6 +83,7 @@ struct act8945a_charger {
 
 	bool init_done;
 	int irq_pin;
+	int lbo_pin;
 };
 
 static int act8945a_get_charger_state(struct regmap *regmap, int *val)
@@ -208,11 +209,70 @@ static int act8945a_get_battery_health(struct regmap *regmap, int *val)
 	return 0;
 }
 
+static int act8945a_get_capacity_level(struct act8945a_charger *charger,
+				       struct regmap *regmap, int *val)
+{
+	int ret;
+	unsigned int status, state, config;
+	int lbo_level = 1;
+
+	if (gpio_is_valid(charger->lbo_pin))
+		lbo_level = gpio_get_value(charger->lbo_pin);
+
+	ret = regmap_read(regmap, ACT8945A_APCH_STATUS, &status);
+	if (ret < 0)
+		return ret;
+
+	ret = regmap_read(regmap, ACT8945A_APCH_CFG, &config);
+	if (ret < 0)
+		return ret;
+
+	ret = regmap_read(regmap, ACT8945A_APCH_STATE, &state);
+	if (ret < 0)
+		return ret;
+
+	state &= APCH_STATE_CSTATE;
+	state >>= APCH_STATE_CSTATE_SHIFT;
+
+	switch (state) {
+	case APCH_STATE_CSTATE_PRE:
+		*val = POWER_SUPPLY_CAPACITY_LEVEL_LOW;
+		break;
+	case APCH_STATE_CSTATE_FAST:
+		if (lbo_level)
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_HIGH;
+		else
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_LOW;
+		break;
+	case APCH_STATE_CSTATE_EOC:
+		if (status & APCH_STATUS_CHGDAT)
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_FULL;
+		else
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
+		break;
+	case APCH_STATE_CSTATE_DISABLED:
+	default:
+		if (config & APCH_CFG_SUSCHG) {
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;
+		} else {
+			*val = POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
+			if (!(status & APCH_STATUS_INDAT)) {
+				if (!lbo_level)
+					*val = POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL;
+			}
+		}
+		break;
+	}
+
+	return 0;
+}
+
 static enum power_supply_property act8945a_charger_props[] = {
 	POWER_SUPPLY_PROP_STATUS,
 	POWER_SUPPLY_PROP_CHARGE_TYPE,
 	POWER_SUPPLY_PROP_TECHNOLOGY,
 	POWER_SUPPLY_PROP_HEALTH,
+	POWER_SUPPLY_PROP_CAPACITY_LEVEL,
 	POWER_SUPPLY_PROP_MODEL_NAME,
 	POWER_SUPPLY_PROP_MANUFACTURER
 };
@@ -238,6 +298,10 @@ static int act8945a_charger_get_property(struct power_supply *psy,
 	case POWER_SUPPLY_PROP_HEALTH:
 		ret = act8945a_get_battery_health(regmap, &val->intval);
 		break;
+	case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
+		ret = act8945a_get_capacity_level(charger,
+						  regmap, &val->intval);
+		break;
 	case POWER_SUPPLY_PROP_MODEL_NAME:
 		val->strval = act8945a_charger_model;
 		break;
@@ -364,6 +428,20 @@ static int act8945a_charger_config(struct device *dev,
 		}
 	}
 
+	charger->lbo_pin = of_get_named_gpio(np, "active-semi,lbo-gpios", 0);
+	if (gpio_is_valid(charger->lbo_pin)) {
+		if (!devm_gpio_request(dev, charger->lbo_pin, "lbo-detect")) {
+			ret = devm_request_irq(dev,
+					       gpio_to_irq(charger->lbo_pin),
+					       act8945a_status_changed,
+					       IRQF_TRIGGER_FALLING |
+					       IRQF_TRIGGER_RISING,
+					       "lbo-detect", charger);
+			if (ret)
+				dev_dbg(dev, "failed to request LBO pin IRQ\n");
+		}
+	}
+
 	chglev_pin = of_get_named_gpio_flags(np,
 				"active-semi,chglev-gpios", 0, &flags);
 
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1452213 — [PATCH v3 6/7] power: act8945a_charger: Add max current property

FromWenyou Yang <wenyou.yang@atmel.com>
Date2016-07-29 03:50 +0200
Subject[PATCH v3 6/7] power: act8945a_charger: Add max current property
Message-ID<s0561-6bX-5@gated-at.bofh.it>
In reply to#1452210
Add the power supply's current max property,
POWER_SUPPLY_PROP_CURRENT_MAX.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---

Changes in v3: None
Changes in v2: None

 drivers/power/act8945a_charger.c | 79 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 77 insertions(+), 2 deletions(-)

diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c
index 74fd547..2294e9d 100644
--- a/drivers/power/act8945a_charger.c
+++ b/drivers/power/act8945a_charger.c
@@ -84,6 +84,7 @@ struct act8945a_charger {
 	bool init_done;
 	int irq_pin;
 	int lbo_pin;
+	int chgin_level;
 };
 
 static int act8945a_get_charger_state(struct regmap *regmap, int *val)
@@ -267,12 +268,79 @@ static int act8945a_get_capacity_level(struct act8945a_charger *charger,
 	return 0;
 }
 
+#define MAX_CURRENT_USB_HIGH	450000
+#define MAX_CURRENT_USB_LOW	90000
+#define MAX_CURRENT_USB_PRE	45000
+/*
+ * Riset(K) = 2336 * (1V/Ichg(mA)) - 0.205
+ * Riset = 2.43K
+ */
+#define MAX_CURRENT_AC_HIGH		886527
+#define MAX_CURRENT_AC_LOW		117305
+#define MAX_CURRENT_AC_HIGH_PRE		88653
+#define MAX_CURRENT_AC_LOW_PRE		11731
+
+static int act8945a_get_current_max(struct act8945a_charger *charger,
+				    struct regmap *regmap, int *val)
+{
+	int ret;
+	unsigned int status, state;
+	unsigned int acin_state;
+
+	ret = regmap_read(regmap, ACT8945A_APCH_STATUS, &status);
+	if (ret < 0)
+		return ret;
+
+	ret = regmap_read(regmap, ACT8945A_APCH_STATE, &state);
+	if (ret < 0)
+		return ret;
+
+	acin_state = (state & APCH_STATE_ACINSTAT) >> 1;
+
+	state &= APCH_STATE_CSTATE;
+	state >>= APCH_STATE_CSTATE_SHIFT;
+
+	switch (state) {
+	case APCH_STATE_CSTATE_PRE:
+		if (acin_state) {
+			if (charger->chgin_level)
+				*val = MAX_CURRENT_AC_HIGH_PRE;
+			else
+				*val = MAX_CURRENT_AC_LOW_PRE;
+		} else {
+			*val = MAX_CURRENT_USB_PRE;
+		}
+		break;
+	case APCH_STATE_CSTATE_FAST:
+		if (acin_state) {
+			if (charger->chgin_level)
+				*val = MAX_CURRENT_AC_HIGH;
+			else
+				*val = MAX_CURRENT_AC_LOW;
+		} else {
+			if (charger->chgin_level)
+				*val = MAX_CURRENT_USB_HIGH;
+			else
+				*val = MAX_CURRENT_USB_LOW;
+		}
+		break;
+	case APCH_STATE_CSTATE_EOC:
+	case APCH_STATE_CSTATE_DISABLED:
+	default:
+		*val = 0;
+		break;
+	}
+
+	return 0;
+}
+
 static enum power_supply_property act8945a_charger_props[] = {
 	POWER_SUPPLY_PROP_STATUS,
 	POWER_SUPPLY_PROP_CHARGE_TYPE,
 	POWER_SUPPLY_PROP_TECHNOLOGY,
 	POWER_SUPPLY_PROP_HEALTH,
 	POWER_SUPPLY_PROP_CAPACITY_LEVEL,
+	POWER_SUPPLY_PROP_CURRENT_MAX,
 	POWER_SUPPLY_PROP_MODEL_NAME,
 	POWER_SUPPLY_PROP_MANUFACTURER
 };
@@ -302,6 +370,10 @@ static int act8945a_charger_get_property(struct power_supply *psy,
 		ret = act8945a_get_capacity_level(charger,
 						  regmap, &val->intval);
 		break;
+	case POWER_SUPPLY_PROP_CURRENT_MAX:
+		ret = act8945a_get_current_max(charger,
+					       regmap, &val->intval);
+		break;
 	case POWER_SUPPLY_PROP_MODEL_NAME:
 		val->strval = act8945a_charger_model;
 		break;
@@ -446,8 +518,11 @@ static int act8945a_charger_config(struct device *dev,
 				"active-semi,chglev-gpios", 0, &flags);
 
 	if (gpio_is_valid(chglev_pin)) {
-		gpio_set_value(chglev_pin,
-			       ((flags == OF_GPIO_ACTIVE_LOW) ? 0 : 1));
+		if (!devm_gpio_request(dev, charger->irq_pin, "chglev-pin")) {
+			charger->chgin_level =
+					(flags == OF_GPIO_ACTIVE_LOW) ? 0 : 1;
+			gpio_set_value(chglev_pin, charger->chgin_level);
+		}
 	}
 
 	if (of_property_read_u32(np,
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1452215 — [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties

FromWenyou Yang <wenyou.yang@atmel.com>
Date2016-07-29 03:50 +0200
Subject[PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties
Message-ID<s0561-6bX-7@gated-at.bofh.it>
In reply to#1452210
Due the driver improvements, update the properties,
 - Remove "active-semi,check-battery-temperature" property.
 - Add the properties, "active-semi,irq_gpio"
   and "active-semi,lbo-gpios".

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---

Changes in v3: None
Changes in v2: None

 Documentation/devicetree/bindings/power/act8945a-charger.txt | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/power/act8945a-charger.txt b/Documentation/devicetree/bindings/power/act8945a-charger.txt
index bea254c..d7cf05b 100644
--- a/Documentation/devicetree/bindings/power/act8945a-charger.txt
+++ b/Documentation/devicetree/bindings/power/act8945a-charger.txt
@@ -4,10 +4,12 @@ Required properties:
  - compatible: "active-semi,act8945a", please refer to ../mfd/act8945a.txt.
  - active-semi,chglev-gpios: charge current level phandle with args
    as described in ../gpio/gpio.txt.
+ - active-semi,irq_gpios: specify the charger interrupt input phanle
+   with args as as described in ../gpio/gpio.txt.
+ - active-semi,lbo-gpios: specify the low battery voltage detect phandle
+   with args as as described in ../gpio/gpio.txt.
 
 Optional properties:
- - active-semi,check-battery-temperature: boolean to check the battery
-   temperature or not.
  - active-semi,input-voltage-threshold-microvolt: unit: mV;
    Specifies the charger's input over-voltage threshold value;
    The value can be: 6600, 7000, 7500, 8000; default: 6600
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1452591 — Re: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties

FromRob Herring <robh@kernel.org>
Date2016-07-29 23:50 +0200
SubjectRe: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties
Message-ID<s0nPk-1RL-11@gated-at.bofh.it>
In reply to#1452215
On Fri, Jul 29, 2016 at 09:25:28AM +0800, Wenyou Yang wrote:
> Due the driver improvements, update the properties,
>  - Remove "active-semi,check-battery-temperature" property.
>  - Add the properties, "active-semi,irq_gpio"
>    and "active-semi,lbo-gpios".
> 
> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
> ---
> 
> Changes in v3: None
> Changes in v2: None
> 
>  Documentation/devicetree/bindings/power/act8945a-charger.txt | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/act8945a-charger.txt b/Documentation/devicetree/bindings/power/act8945a-charger.txt
> index bea254c..d7cf05b 100644
> --- a/Documentation/devicetree/bindings/power/act8945a-charger.txt
> +++ b/Documentation/devicetree/bindings/power/act8945a-charger.txt
> @@ -4,10 +4,12 @@ Required properties:
>   - compatible: "active-semi,act8945a", please refer to ../mfd/act8945a.txt.
>   - active-semi,chglev-gpios: charge current level phandle with args
>     as described in ../gpio/gpio.txt.
> + - active-semi,irq_gpios: specify the charger interrupt input phanle
> +   with args as as described in ../gpio/gpio.txt.

As I said in v2, this should be an interrupt property instead.

> + - active-semi,lbo-gpios: specify the low battery voltage detect phandle
> +   with args as as described in ../gpio/gpio.txt.

Maybe this one too.

>  
>  Optional properties:
> - - active-semi,check-battery-temperature: boolean to check the battery
> -   temperature or not.
>   - active-semi,input-voltage-threshold-microvolt: unit: mV;
>     Specifies the charger's input over-voltage threshold value;
>     The value can be: 6600, 7000, 7500, 8000; default: 6600
> -- 
> 2.7.4
> 

[toc] | [prev] | [next] | [standalone]


#1457551 — RE: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties

From<Wenyou.Yang@microchip.com>
Date2016-08-08 08:10 +0200
SubjectRE: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties
Message-ID<s3LV7-65n-3@gated-at.bofh.it>
In reply to#1452591
Hi Rob,

> -----Original Message-----
> From: Rob Herring [mailto:robh@kernel.org]
> Sent: 2016年7月30日 5:40
> To: Wenyou Yang <wenyou.yang@atmel.com>
> Cc: Sebastian Reichel <sre@kernel.org>; Dmitry Eremin-Solenikov
> <dbaryshkov@gmail.com>; David Woodhouse <dwmw2@infradead.org>; Pawel
> Moll <pawel.moll@arm.com>; Mark Brown <broonie@kernel.org>; Ian Campbell
> <ijc+devicetree@hellion.org.uk>; Kumar Gala <galak@codeaurora.org>; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; Nicolas Ferre <nicolas.ferre@atmel.com>; linux-
> pm@vger.kernel.org
> Subject: Re: [PATCH v3 7/7] doc: bindings: act8945a-charger: Update properties
> 
> On Fri, Jul 29, 2016 at 09:25:28AM +0800, Wenyou Yang wrote:
> > Due the driver improvements, update the properties,
> >  - Remove "active-semi,check-battery-temperature" property.
> >  - Add the properties, "active-semi,irq_gpio"
> >    and "active-semi,lbo-gpios".
> >
> > Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
> > ---
> >
> > Changes in v3: None
> > Changes in v2: None
> >
> >  Documentation/devicetree/bindings/power/act8945a-charger.txt | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/power/act8945a-charger.txt
> b/Documentation/devicetree/bindings/power/act8945a-charger.txt
> > index bea254c..d7cf05b 100644
> > --- a/Documentation/devicetree/bindings/power/act8945a-charger.txt
> > +++ b/Documentation/devicetree/bindings/power/act8945a-charger.txt
> > @@ -4,10 +4,12 @@ Required properties:
> >   - compatible: "active-semi,act8945a", please refer to ../mfd/act8945a.txt.
> >   - active-semi,chglev-gpios: charge current level phandle with args
> >     as described in ../gpio/gpio.txt.
> > + - active-semi,irq_gpios: specify the charger interrupt input phanle
> > +   with args as as described in ../gpio/gpio.txt.
> 
> As I said in v2, this should be an interrupt property instead.

Sorry for forgetting to change.

Accepted, will be in next version. Thanks.

> 
> > + - active-semi,lbo-gpios: specify the low battery voltage detect phandle
> > +   with args as as described in ../gpio/gpio.txt.
> 
> Maybe this one too.

The capacity level function need to read this pin level, so this one should not
use "interrupts" property.

> 
> >
> >  Optional properties:
> > - - active-semi,check-battery-temperature: boolean to check the battery
> > -   temperature or not.
> >   - active-semi,input-voltage-threshold-microvolt: unit: mV;
> >     Specifies the charger's input over-voltage threshold value;
> >     The value can be: 6600, 7000, 7500, 8000; default: 6600
> > --
> > 2.7.4
> >

Best Regards,
Wenyou Yang

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web