* [PATCH 0/7] power: act8945a_charger: Improvements @ 2016-06-24 7:17 Wenyou Yang 2016-06-24 7:17 ` [PATCH 1/7] power: act8945a_charger: Remove "battery_temperature" Wenyou Yang ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang 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. 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 | 371 ++++++++++++++++++--- 2 files changed, 337 insertions(+), 40 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/7] power: act8945a_charger: Remove "battery_temperature" 2016-06-24 7:17 [PATCH 0/7] power: act8945a_charger: Improvements Wenyou Yang @ 2016-06-24 7:17 ` Wenyou Yang 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang ` (3 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang Remove "battery_temperature" member, it is redundant, it is the hardware's responsibility to handle TH pin properly. It is unnecessary to use the dt property to check if there is a battery temperature monitor or not. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> --- drivers/power/act8945a_charger.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c index b5c00e4..72d39ba 100644 --- a/drivers/power/act8945a_charger.c +++ b/drivers/power/act8945a_charger.c @@ -76,7 +76,6 @@ static const char *act8945a_charger_manufacturer = "Active-semi"; struct act8945a_charger { struct regmap *regmap; - bool battery_temperature; }; static int act8945a_get_charger_state(struct regmap *regmap, int *val) @@ -138,8 +137,7 @@ static int act8945a_get_charge_type(struct regmap *regmap, int *val) return 0; } -static int act8945a_get_battery_health(struct act8945a_charger *charger, - struct regmap *regmap, int *val) +static int act8945a_get_battery_health(struct regmap *regmap, int *val) { int ret; unsigned int status; @@ -148,7 +146,7 @@ static int act8945a_get_battery_health(struct act8945a_charger *charger, if (ret < 0) return ret; - if (charger->battery_temperature && !(status & APCH_STATUS_TEMPDAT)) + if (status & APCH_STATUS_TEMPDAT) *val = POWER_SUPPLY_HEALTH_OVERHEAT; else if (!(status & APCH_STATUS_INDAT)) *val = POWER_SUPPLY_HEALTH_OVERVOLTAGE; @@ -188,8 +186,7 @@ static int act8945a_charger_get_property(struct power_supply *psy, val->intval = POWER_SUPPLY_TECHNOLOGY_LION; break; case POWER_SUPPLY_PROP_HEALTH: - ret = act8945a_get_battery_health(charger, - regmap, &val->intval); + ret = act8945a_get_battery_health(regmap, &val->intval); break; case POWER_SUPPLY_PROP_MODEL_NAME: val->strval = act8945a_charger_model; @@ -235,9 +232,6 @@ static int act8945a_charger_config(struct device *dev, return -EINVAL; } - charger->battery_temperature = of_property_read_bool(np, - "active-semi,check-battery-temperature"); - chglev_pin = of_get_named_gpio_flags(np, "active-semi,chglev-gpios", 0, &flags); -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/7] power: act8945a_charger: Improve 2016-06-24 7:17 [PATCH 0/7] power: act8945a_charger: Improvements Wenyou Yang 2016-06-24 7:17 ` [PATCH 1/7] power: act8945a_charger: Remove "battery_temperature" Wenyou Yang @ 2016-06-24 7:17 ` Wenyou Yang 2016-06-24 11:22 ` kbuild test robot ` (2 more replies) 2016-06-24 7:17 ` [PATCH 4/7] power: act8945a_charger: Fix the power supply type Wenyou Yang ` (2 subsequent siblings) 4 siblings, 3 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang When get the property, first check the charger state machine, then check the status bit to decide what value is assigned to the corresponding property. Retain the SUSCHG bit of REG 0x71 when configure the timers to avoid losting the charger suspending info after boot. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> --- drivers/power/act8945a_charger.c | 85 ++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 17 deletions(-) diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c index 72d39ba..939f1bb 100644 --- a/drivers/power/act8945a_charger.c +++ b/drivers/power/act8945a_charger.c @@ -94,17 +94,25 @@ static int act8945a_get_charger_state(struct regmap *regmap, int *val) state &= APCH_STATE_CSTATE; state >>= APCH_STATE_CSTATE_SHIFT; - if (state == APCH_STATE_CSTATE_EOC) { + switch (state) { + case APCH_STATE_CSTATE_PRE: + case APCH_STATE_CSTATE_FAST: + *val = POWER_SUPPLY_STATUS_CHARGING; + break; + case APCH_STATE_CSTATE_EOC: if (status & APCH_STATUS_CHGDAT) *val = POWER_SUPPLY_STATUS_FULL; else + *val = POWER_SUPPLY_STATUS_CHARGING; + break; + case APCH_STATE_CSTATE_DISABLED: + default: + if (!(status & APCH_STATUS_INDAT)) + *val = POWER_SUPPLY_STATUS_DISCHARGING; + else *val = POWER_SUPPLY_STATUS_NOT_CHARGING; - } else if ((state == APCH_STATE_CSTATE_FAST) || - (state == APCH_STATE_CSTATE_PRE)) { - *val = POWER_SUPPLY_STATUS_CHARGING; - } else { - *val = POWER_SUPPLY_STATUS_NOT_CHARGING; - } + break; + }; return 0; } @@ -112,7 +120,11 @@ static int act8945a_get_charger_state(struct regmap *regmap, int *val) static int act8945a_get_charge_type(struct regmap *regmap, int *val) { int ret; - unsigned int state; + unsigned int status, 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) @@ -129,9 +141,15 @@ static int act8945a_get_charge_type(struct regmap *regmap, int *val) *val = POWER_SUPPLY_CHARGE_TYPE_FAST; break; case APCH_STATE_CSTATE_EOC: + *val = POWER_SUPPLY_CHARGE_TYPE_NONE; + break; case APCH_STATE_CSTATE_DISABLED: default: - *val = POWER_SUPPLY_CHARGE_TYPE_NONE; + if (!(status & APCH_STATUS_INDAT)) + *val = POWER_SUPPLY_CHARGE_TYPE_NONE; + else + *val = POWER_SUPPLY_CHARGE_TYPE_UNKNOWN; + break; } return 0; @@ -140,20 +158,45 @@ static int act8945a_get_charge_type(struct regmap *regmap, int *val) static int act8945a_get_battery_health(struct regmap *regmap, int *val) { int ret; - unsigned int status; + unsigned int status, state, config; ret = regmap_read(regmap, ACT8945A_APCH_STATUS, &status); if (ret < 0) return ret; - if (status & APCH_STATUS_TEMPDAT) - *val = POWER_SUPPLY_HEALTH_OVERHEAT; - else if (!(status & APCH_STATUS_INDAT)) - *val = POWER_SUPPLY_HEALTH_OVERVOLTAGE; - else if (status & APCH_STATUS_TIMRDAT) - *val = POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE; - else + 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_DISABLED: + if (config & APCH_CFG_SUSCHG) { + *val = POWER_SUPPLY_HEALTH_UNKNOWN; + } else if (status & APCH_STATUS_INDAT) { + if (!(status & APCH_STATUS_TEMPDAT)) + *val = POWER_SUPPLY_HEALTH_OVERHEAT; + else if (status & APCH_STATUS_TIMRDAT) + *val = POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE; + else + *val = POWER_SUPPLY_HEALTH_OVERVOLTAGE; + } else { + *val = POWER_SUPPLY_HEALTH_GOOD; + } + break; + case APCH_STATE_CSTATE_PRE: + case APCH_STATE_CSTATE_FAST: + case APCH_STATE_CSTATE_EOC: + default: *val = POWER_SUPPLY_HEALTH_GOOD; + break; + } return 0; } @@ -225,6 +268,7 @@ static int act8945a_charger_config(struct device *dev, u32 input_voltage_threshold; int chglev_pin; + unsigned int tmp; unsigned int value = 0; if (!np) { @@ -232,6 +276,13 @@ static int act8945a_charger_config(struct device *dev, return -EINVAL; } + ret = regmap_read(regmap, ACT8945A_APCH_CFG, &tmp); + if (ret) + return ret; + + if (tmp & APCH_CFG_SUSCHG) + value |= APCH_CFG_SUSCHG; + chglev_pin = of_get_named_gpio_flags(np, "active-semi,chglev-gpios", 0, &flags); -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/7] power: act8945a_charger: Improve 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang @ 2016-06-24 11:22 ` kbuild test robot 2016-06-24 12:43 ` [PATCH] power: act8945a_charger: fix semicolon.cocci warnings kbuild test robot 2016-06-24 12:43 ` [PATCH 2/7] power: act8945a_charger: Improve kbuild test robot 2 siblings, 0 replies; 14+ messages in thread From: kbuild test robot @ 2016-06-24 11:22 UTC (permalink / raw) Cc: kbuild-all, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala, linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang [-- Attachment #1: Type: text/plain, Size: 1590 bytes --] Hi, [auto build test ERROR on battery/master] [also build test ERROR on v4.7-rc4 next-20160624] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Wenyou-Yang/power-act8945a_charger-Improvements/20160624-153641 base: git://git.infradead.org/battery-2.6.git master config: x86_64-randconfig-s1-06241859 (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 Note: the linux-review/Wenyou-Yang/power-act8945a_charger-Improvements/20160624-153641 HEAD 07219a8e44d2a15ec36d4a85dc98229c8cc6d858 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): drivers/power/act8945a_charger.c: In function 'act8945a_charger_config': >> drivers/power/act8945a_charger.c:279:2: error: 'ret' undeclared (first use in this function) ret = regmap_read(regmap, ACT8945A_APCH_CFG, &tmp); ^~~ drivers/power/act8945a_charger.c:279:2: note: each undeclared identifier is reported only once for each function it appears in vim +/ret +279 drivers/power/act8945a_charger.c 273 274 if (!np) { 275 dev_err(dev, "no charger of node\n"); 276 return -EINVAL; 277 } 278 > 279 ret = regmap_read(regmap, ACT8945A_APCH_CFG, &tmp); 280 if (ret) 281 return ret; 282 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 29557 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] power: act8945a_charger: fix semicolon.cocci warnings 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang 2016-06-24 11:22 ` kbuild test robot @ 2016-06-24 12:43 ` kbuild test robot 2016-06-28 1:34 ` Yang, Wenyou 2016-07-29 0:57 ` Yang, Wenyou 2016-06-24 12:43 ` [PATCH 2/7] power: act8945a_charger: Improve kbuild test robot 2 siblings, 2 replies; 14+ messages in thread From: kbuild test robot @ 2016-06-24 12:43 UTC (permalink / raw) Cc: kbuild-all, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala, linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang drivers/power/act8945a_charger.c:115:2-3: Unneeded semicolon Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: Wenyou Yang <wenyou.yang@atmel.com> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> --- act8945a_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/power/act8945a_charger.c +++ b/drivers/power/act8945a_charger.c @@ -112,7 +112,7 @@ static int act8945a_get_charger_state(st else *val = POWER_SUPPLY_STATUS_NOT_CHARGING; break; - }; + } return 0; } ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH] power: act8945a_charger: fix semicolon.cocci warnings 2016-06-24 12:43 ` [PATCH] power: act8945a_charger: fix semicolon.cocci warnings kbuild test robot @ 2016-06-28 1:34 ` Yang, Wenyou 2016-07-29 0:57 ` Yang, Wenyou 1 sibling, 0 replies; 14+ messages in thread From: Yang, Wenyou @ 2016-06-28 1:34 UTC (permalink / raw) To: kbuild test robot Cc: kbuild-all@01.org, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Ferre, Nicolas, linux-pm@vger.kernel.org > -----Original Message----- > From: kbuild test robot [mailto:lkp@intel.com] > Sent: 2016年6月24日 20:43 > To: Yang, Wenyou <Wenyou.Yang@atmel.com> > Cc: kbuild-all@01.org; Sebastian Reichel <sre@kernel.org>; Dmitry Eremin- > Solenikov <dbaryshkov@gmail.com>; David Woodhouse > <dwmw2@infradead.org>; Rob Herring <robh+dt@kernel.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; Ferre, Nicolas <Nicolas.FERRE@atmel.com>; linux- > pm@vger.kernel.org; Yang, Wenyou <Wenyou.Yang@atmel.com> > Subject: [PATCH] power: act8945a_charger: fix semicolon.cocci warnings > > drivers/power/act8945a_charger.c:115:2-3: Unneeded semicolon > > > Remove unneeded semicolon. > > Generated by: scripts/coccinelle/misc/semicolon.cocci > > CC: Wenyou Yang <wenyou.yang@atmel.com> > Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Acked-by Wenyou Yang <Wenyou.yang@atmel.com> Thank you for your fix. > --- > > act8945a_charger.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/drivers/power/act8945a_charger.c > +++ b/drivers/power/act8945a_charger.c > @@ -112,7 +112,7 @@ static int act8945a_get_charger_state(st > else > *val = POWER_SUPPLY_STATUS_NOT_CHARGING; > break; > - }; > + } > > return 0; > } Best Regards, Wenyou Yang ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH] power: act8945a_charger: fix semicolon.cocci warnings 2016-06-24 12:43 ` [PATCH] power: act8945a_charger: fix semicolon.cocci warnings kbuild test robot 2016-06-28 1:34 ` Yang, Wenyou @ 2016-07-29 0:57 ` Yang, Wenyou 2016-07-29 1:01 ` [kbuild-all] " Fengguang Wu 1 sibling, 1 reply; 14+ messages in thread From: Yang, Wenyou @ 2016-07-29 0:57 UTC (permalink / raw) To: kbuild test robot Cc: kbuild-all@01.org, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Ferre, Nicolas, linux-pm@vger.kernel.org Hi Fengguang, I would like to merge this patch and add your Signed-off-by, do you agree? I think it is better. Best Regards, Wenyou Yang ________________________________________ From: kbuild test robot [lkp@intel.com] Sent: Friday, June 24, 2016 20:43 To: Yang, Wenyou Cc: kbuild-all@01.org; Sebastian Reichel; Dmitry Eremin-Solenikov; David Woodhouse; Rob Herring; Pawel Moll; Mark Brown; Ian Campbell; Kumar Gala; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Ferre, Nicolas; linux-pm@vger.kernel.org; Yang, Wenyou Subject: [PATCH] power: act8945a_charger: fix semicolon.cocci warnings drivers/power/act8945a_charger.c:115:2-3: Unneeded semicolon Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: Wenyou Yang <wenyou.yang@atmel.com> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> --- act8945a_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/power/act8945a_charger.c +++ b/drivers/power/act8945a_charger.c @@ -112,7 +112,7 @@ static int act8945a_get_charger_state(st else *val = POWER_SUPPLY_STATUS_NOT_CHARGING; break; - }; + } return 0; } ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [kbuild-all] [PATCH] power: act8945a_charger: fix semicolon.cocci warnings 2016-07-29 0:57 ` Yang, Wenyou @ 2016-07-29 1:01 ` Fengguang Wu 0 siblings, 0 replies; 14+ messages in thread From: Fengguang Wu @ 2016-07-29 1:01 UTC (permalink / raw) To: Yang, Wenyou Cc: devicetree@vger.kernel.org, Pawel Moll, Ian Campbell, Dmitry Eremin-Solenikov, Mark Brown, linux-pm@vger.kernel.org, Ferre, Nicolas, Sebastian Reichel, linux-kernel@vger.kernel.org, Rob Herring, kbuild-all@01.org, Kumar Gala, David Woodhouse, linux-arm-kernel@lists.infradead.org Hi Wenyou, On Fri, Jul 29, 2016 at 12:57:20AM +0000, Yang, Wenyou wrote: >Hi Fengguang, > >I would like to merge this patch and add your Signed-off-by, do you agree? > >I think it is better. Yes that'd be fine, too. Thanks, Fengguang >From: kbuild test robot [lkp@intel.com] >Sent: Friday, June 24, 2016 20:43 >To: Yang, Wenyou >Cc: kbuild-all@01.org; Sebastian Reichel; Dmitry Eremin-Solenikov; David Woodhouse; Rob Herring; Pawel Moll; Mark Brown; Ian Campbell; Kumar Gala; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Ferre, Nicolas; linux-pm@vger.kernel.org; Yang, Wenyou >Subject: [PATCH] power: act8945a_charger: fix semicolon.cocci warnings > >drivers/power/act8945a_charger.c:115:2-3: Unneeded semicolon > > > Remove unneeded semicolon. > >Generated by: scripts/coccinelle/misc/semicolon.cocci > >CC: Wenyou Yang <wenyou.yang@atmel.com> >Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> >--- > > act8945a_charger.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >--- a/drivers/power/act8945a_charger.c >+++ b/drivers/power/act8945a_charger.c >@@ -112,7 +112,7 @@ static int act8945a_get_charger_state(st > else > *val = POWER_SUPPLY_STATUS_NOT_CHARGING; > break; >- }; >+ } > > return 0; > } >_______________________________________________ >kbuild-all mailing list >kbuild-all@lists.01.org >https://lists.01.org/mailman/listinfo/kbuild-all ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/7] power: act8945a_charger: Improve 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang 2016-06-24 11:22 ` kbuild test robot 2016-06-24 12:43 ` [PATCH] power: act8945a_charger: fix semicolon.cocci warnings kbuild test robot @ 2016-06-24 12:43 ` kbuild test robot 2 siblings, 0 replies; 14+ messages in thread From: kbuild test robot @ 2016-06-24 12:43 UTC (permalink / raw) Cc: kbuild-all, Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala, linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang Hi, [auto build test WARNING on battery/master] [also build test WARNING on v4.7-rc4 next-20160624] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Wenyou-Yang/power-act8945a_charger-Improvements/20160624-153641 base: git://git.infradead.org/battery-2.6.git master coccinelle warnings: (new ones prefixed by >>) >> drivers/power/act8945a_charger.c:115:2-3: Unneeded semicolon Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/7] power: act8945a_charger: Fix the power supply type 2016-06-24 7:17 [PATCH 0/7] power: act8945a_charger: Improvements Wenyou Yang 2016-06-24 7:17 ` [PATCH 1/7] power: act8945a_charger: Remove "battery_temperature" Wenyou Yang 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang @ 2016-06-24 7:17 ` Wenyou Yang [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> 2016-06-24 7:17 ` [PATCH 7/7] doc: bindings: act8945a-charger: Update properties Wenyou Yang 4 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang The power supply type property is varying as the external power supply changes. It is not a constant. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> --- drivers/power/act8945a_charger.c | 48 ++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c index 0c61b28..be65e5d 100644 --- a/drivers/power/act8945a_charger.c +++ b/drivers/power/act8945a_charger.c @@ -77,6 +77,7 @@ static const char *act8945a_charger_manufacturer = "Active-semi"; struct act8945a_charger { struct power_supply *psy; + struct power_supply_desc desc; struct regmap *regmap; struct work_struct work; @@ -250,14 +251,6 @@ static int act8945a_charger_get_property(struct power_supply *psy, return ret; } -static const struct power_supply_desc act8945a_charger_desc = { - .name = "act8945a-charger", - .type = POWER_SUPPLY_TYPE_BATTERY, - .get_property = act8945a_charger_get_property, - .properties = act8945a_charger_props, - .num_properties = ARRAY_SIZE(act8945a_charger_props), -}; - static int act8945a_enable_interrupt(struct act8945a_charger *charger) { struct regmap *regmap = charger->regmap; @@ -281,11 +274,39 @@ static int act8945a_enable_interrupt(struct act8945a_charger *charger) return 0; } +static unsigned int act8945a_set_supply_type(struct act8945a_charger *charger, + unsigned int *type) +{ + unsigned int status, state; + int ret; + + ret = regmap_read(charger->regmap, ACT8945A_APCH_STATUS, &status); + if (ret < 0) + return ret; + + ret = regmap_read(charger->regmap, ACT8945A_APCH_STATE, &state); + if (ret < 0) + return ret; + + if (status & APCH_STATUS_INDAT) { + if (state & APCH_STATE_ACINSTAT) + *type = POWER_SUPPLY_TYPE_MAINS; + else + *type = POWER_SUPPLY_TYPE_USB; + } else { + *type = POWER_SUPPLY_TYPE_BATTERY; + } + + return 0; +} + static void act8945a_work(struct work_struct *work) { struct act8945a_charger *charger = container_of(work, struct act8945a_charger, work); + act8945a_set_supply_type(charger, &charger->desc.type); + power_supply_changed(charger->psy); } @@ -436,11 +457,20 @@ static int act8945a_charger_probe(struct platform_device *pdev) if (ret) return ret; + charger->desc.name = "act8945a-charger"; + charger->desc.get_property = act8945a_charger_get_property; + charger->desc.properties = act8945a_charger_props; + charger->desc.num_properties = ARRAY_SIZE(act8945a_charger_props); + + ret = act8945a_set_supply_type(charger, &charger->desc.type); + if (ret) + return -EINVAL; + psy_cfg.of_node = pdev->dev.parent->of_node; psy_cfg.drv_data = charger; charger->psy = devm_power_supply_register(&pdev->dev, - &act8945a_charger_desc, + &charger->desc, &psy_cfg); if (IS_ERR(charger->psy)) { dev_err(&pdev->dev, "failed to register power supply\n"); -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
[parent not found: <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>]
* [PATCH 3/7] power: act8945a_charger: Add status change update support [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> @ 2016-06-24 7:17 ` Wenyou Yang 2016-06-24 7:17 ` [PATCH 5/7] power: act8945a_charger: Add capacity level property Wenyou Yang 2016-06-24 7:17 ` [PATCH 6/7] power: act8945a_charger: Add max current property Wenyou Yang 2 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Nicolas Ferre, linux-pm-u79uwXL29TY76Z2rM5mHXA, Wenyou Yang 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-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> --- drivers/power/act8945a_charger.c | 79 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 6 deletions(-) diff --git a/drivers/power/act8945a_charger.c b/drivers/power/act8945a_charger.c index 939f1bb..0c61b28 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 @@ -267,6 +314,7 @@ static int act8945a_charger_config(struct device *dev, u32 pre_time_out; u32 input_voltage_threshold; int chglev_pin; + int ret; unsigned int tmp; unsigned int value = 0; @@ -282,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); @@ -359,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; @@ -380,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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/7] power: act8945a_charger: Add capacity level property [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> 2016-06-24 7:17 ` [PATCH 3/7] power: act8945a_charger: Add status change update support Wenyou Yang @ 2016-06-24 7:17 ` Wenyou Yang 2016-06-24 7:17 ` [PATCH 6/7] power: act8945a_charger: Add max current property Wenyou Yang 2 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Nicolas Ferre, linux-pm-u79uwXL29TY76Z2rM5mHXA, Wenyou Yang 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-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> --- 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 be65e5d..9b79f5e 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/7] power: act8945a_charger: Add max current property [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> 2016-06-24 7:17 ` [PATCH 3/7] power: act8945a_charger: Add status change update support Wenyou Yang 2016-06-24 7:17 ` [PATCH 5/7] power: act8945a_charger: Add capacity level property Wenyou Yang @ 2016-06-24 7:17 ` Wenyou Yang 2 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Nicolas Ferre, linux-pm-u79uwXL29TY76Z2rM5mHXA, Wenyou Yang Add the power supply's current max property, POWER_SUPPLY_PROP_CURRENT_MAX. Signed-off-by: Wenyou Yang <wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> --- 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 9b79f5e..8d99bff 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 7/7] doc: bindings: act8945a-charger: Update properties 2016-06-24 7:17 [PATCH 0/7] power: act8945a_charger: Improvements Wenyou Yang ` (3 preceding siblings ...) [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> @ 2016-06-24 7:17 ` Wenyou Yang 4 siblings, 0 replies; 14+ messages in thread From: Wenyou Yang @ 2016-06-24 7:17 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Eremin-Solenikov, David Woodhouse, Rob Herring, Pawel Moll, Mark Brown, Ian Campbell, Kumar Gala Cc: linux-kernel, devicetree, linux-arm-kernel, Nicolas Ferre, linux-pm, Wenyou Yang 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> --- 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 ^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-07-29 1:01 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-06-24 7:17 [PATCH 0/7] power: act8945a_charger: Improvements Wenyou Yang 2016-06-24 7:17 ` [PATCH 1/7] power: act8945a_charger: Remove "battery_temperature" Wenyou Yang 2016-06-24 7:17 ` [PATCH 2/7] power: act8945a_charger: Improve Wenyou Yang 2016-06-24 11:22 ` kbuild test robot 2016-06-24 12:43 ` [PATCH] power: act8945a_charger: fix semicolon.cocci warnings kbuild test robot 2016-06-28 1:34 ` Yang, Wenyou 2016-07-29 0:57 ` Yang, Wenyou 2016-07-29 1:01 ` [kbuild-all] " Fengguang Wu 2016-06-24 12:43 ` [PATCH 2/7] power: act8945a_charger: Improve kbuild test robot 2016-06-24 7:17 ` [PATCH 4/7] power: act8945a_charger: Fix the power supply type Wenyou Yang [not found] ` <1466752660-2922-1-git-send-email-wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> 2016-06-24 7:17 ` [PATCH 3/7] power: act8945a_charger: Add status change update support Wenyou Yang 2016-06-24 7:17 ` [PATCH 5/7] power: act8945a_charger: Add capacity level property Wenyou Yang 2016-06-24 7:17 ` [PATCH 6/7] power: act8945a_charger: Add max current property Wenyou Yang 2016-06-24 7:17 ` [PATCH 7/7] doc: bindings: act8945a-charger: Update properties Wenyou Yang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).