All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Introduces bypass charge type property
@ 2022-02-15  0:07 Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 1/3] power: supply: Introduces bypass charging property Ricardo Rivera-Matos
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ricardo Rivera-Matos @ 2022-02-15  0:07 UTC (permalink / raw)
  To: sre, linux-pm, linux-kernel, patches; +Cc: Ricardo Rivera-Matos

Hello,

This patch series introduces a new POWER_SUPPLY_CHARGE_TYPE for bypass charging
operation.

In fast charging ICs, the bypass operation is used to bypass the charging path
around the charging IC's integrated power converter to its load. This allows
for "smart" wall adaptors (such as USB PPS standard power adaptors) to handle
the power conversion and heat dissipation externally.

Best Regards,
Ricardo

Ricardo Rivera-Matos (2):
  power: supply: Introduces bypass charging property
  power: supply: bq25980: Implements POWER_SUPPLY_CHARGE_TYPE_BYPASS

 drivers/power/supply/bq25980_charger.c    | 2 +-
 drivers/power/supply/power_supply_sysfs.c | 1 +
 include/linux/power_supply.h              | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/3] power: supply: Introduces bypass charging property
  2022-02-15  0:07 [PATCH v3 0/3] Introduces bypass charge type property Ricardo Rivera-Matos
@ 2022-02-15  0:07 ` Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 2/3] power: supply: bq25980: Implements POWER_SUPPLY_CHARGE_TYPE_BYPASS Ricardo Rivera-Matos
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Ricardo Rivera-Matos @ 2022-02-15  0:07 UTC (permalink / raw)
  To: sre, linux-pm, linux-kernel, patches; +Cc: Ricardo Rivera-Matos

Adds a POWER_SUPPLY_CHARGE_TYPE_BYPASS option to the POWER_SUPPLY_PROP_CHARGE_TYPE
property to facilitate bypass charging operation.

In bypass charging operation, the charger bypasses the charging path around the
integrated converter allowing for a "smart" wall adaptor to perform the power
conversion externally.

This operational mode is critical for the USB PPS standard of power adaptors and is
becoming a common feature in modern charging ICs such as:

- BQ25980
- BQ25975
- BQ25960
- LN8000
- LN8410

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
---
 Documentation/ABI/testing/sysfs-class-power | 7 +++++--
 drivers/power/supply/power_supply_sysfs.c   | 1 +
 include/linux/power_supply.h                | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-power b/Documentation/ABI/testing/sysfs-class-power
index f7904efc4cfa..8e3bf1aa6268 100644
--- a/Documentation/ABI/testing/sysfs-class-power
+++ b/Documentation/ABI/testing/sysfs-class-power
@@ -380,13 +380,16 @@ Description:
 		algorithm to adjust the charge rate dynamically, without
 		any user configuration required. "Custom" means that the charger
 		uses the charge_control_* properties as configuration for some
-		different algorithm.
+		different algorithm. "Bypass" means the charger bypasses the
+		charging path around the integrated converter allowing for a
+		"smart" wall adaptor to perform the power conversion
+		externally.
 
 		Access: Read, Write
 
 		Valid values:
 			      "Unknown", "N/A", "Trickle", "Fast", "Standard",
-			      "Adaptive", "Custom"
+			      "Adaptive", "Custom", "Bypass"
 
 What:		/sys/class/power_supply/<supply_name>/charge_term_current
 Date:		July 2014
diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c
index c3d7cbcd4fad..1368e13dc94b 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -89,6 +89,7 @@ static const char * const POWER_SUPPLY_CHARGE_TYPE_TEXT[] = {
 	[POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE]	= "Adaptive",
 	[POWER_SUPPLY_CHARGE_TYPE_CUSTOM]	= "Custom",
 	[POWER_SUPPLY_CHARGE_TYPE_LONGLIFE]	= "Long Life",
+	[POWER_SUPPLY_CHARGE_TYPE_BYPASS]	= "Bypass",
 };
 
 static const char * const POWER_SUPPLY_HEALTH_TEXT[] = {
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 9ca1f120a211..9432234d7900 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -49,6 +49,7 @@ enum {
 	POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE,	/* dynamically adjusted speed */
 	POWER_SUPPLY_CHARGE_TYPE_CUSTOM,	/* use CHARGE_CONTROL_* props */
 	POWER_SUPPLY_CHARGE_TYPE_LONGLIFE,	/* slow speed, longer life */
+	POWER_SUPPLY_CHARGE_TYPE_BYPASS,	/* bypassing the charger */
 };
 
 enum {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 2/3] power: supply: bq25980: Implements POWER_SUPPLY_CHARGE_TYPE_BYPASS
  2022-02-15  0:07 [PATCH v3 0/3] Introduces bypass charge type property Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 1/3] power: supply: Introduces bypass charging property Ricardo Rivera-Matos
@ 2022-02-15  0:07 ` Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 3/3] ABI: testing: sysfs-class-power: Adds "Long Life" entry Ricardo Rivera-Matos
  2022-02-24 11:15 ` [PATCH v3 0/3] Introduces bypass charge type property Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Ricardo Rivera-Matos @ 2022-02-15  0:07 UTC (permalink / raw)
  To: sre, linux-pm, linux-kernel, patches; +Cc: Ricardo Rivera-Matos

This patch remaps the bypass operation from POWER_SUPPLY_CHARGE_TYPE_FAST
to POWER_SUPPLY_CHARGE_TYPE_BYPASS.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
---
 drivers/power/supply/bq25980_charger.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/power/supply/bq25980_charger.c b/drivers/power/supply/bq25980_charger.c
index 0008c229fd9c..296b221a70fd 100644
--- a/drivers/power/supply/bq25980_charger.c
+++ b/drivers/power/supply/bq25980_charger.c
@@ -764,7 +764,7 @@ static int bq25980_get_charger_property(struct power_supply *psy,
 		if (!state.ce)
 			val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE;
 		else if (state.bypass)
-			val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST;
+			val->intval = POWER_SUPPLY_CHARGE_TYPE_BYPASS;
 		else if (!state.bypass)
 			val->intval = POWER_SUPPLY_CHARGE_TYPE_STANDARD;
 		break;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 3/3] ABI: testing: sysfs-class-power: Adds "Long Life" entry
  2022-02-15  0:07 [PATCH v3 0/3] Introduces bypass charge type property Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 1/3] power: supply: Introduces bypass charging property Ricardo Rivera-Matos
  2022-02-15  0:07 ` [PATCH v3 2/3] power: supply: bq25980: Implements POWER_SUPPLY_CHARGE_TYPE_BYPASS Ricardo Rivera-Matos
@ 2022-02-15  0:07 ` Ricardo Rivera-Matos
  2022-02-24 11:15 ` [PATCH v3 0/3] Introduces bypass charge type property Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Ricardo Rivera-Matos @ 2022-02-15  0:07 UTC (permalink / raw)
  To: sre, linux-pm, linux-kernel, patches; +Cc: Ricardo Rivera-Matos

Adds a brief desciption of the "Long Life" charge type and adds "Long Life"
to the list of valid values.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
---
 Documentation/ABI/testing/sysfs-class-power | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-power b/Documentation/ABI/testing/sysfs-class-power
index 8e3bf1aa6268..b304fa9c1482 100644
--- a/Documentation/ABI/testing/sysfs-class-power
+++ b/Documentation/ABI/testing/sysfs-class-power
@@ -380,16 +380,17 @@ Description:
 		algorithm to adjust the charge rate dynamically, without
 		any user configuration required. "Custom" means that the charger
 		uses the charge_control_* properties as configuration for some
-		different algorithm. "Bypass" means the charger bypasses the
-		charging path around the integrated converter allowing for a
-		"smart" wall adaptor to perform the power conversion
-		externally.
+		different algorithm. "Long Life" means the charger reduces its
+		charging rate in order to prolong the battery health. "Bypass"
+		means the charger bypasses the charging path around the
+		integrated converter allowing for a "smart" wall adaptor to
+		perform the power conversion externally.
 
 		Access: Read, Write
 
 		Valid values:
 			      "Unknown", "N/A", "Trickle", "Fast", "Standard",
-			      "Adaptive", "Custom", "Bypass"
+			      "Adaptive", "Custom", "Long Life", "Bypass"
 
 What:		/sys/class/power_supply/<supply_name>/charge_term_current
 Date:		July 2014
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 0/3] Introduces bypass charge type property
  2022-02-15  0:07 [PATCH v3 0/3] Introduces bypass charge type property Ricardo Rivera-Matos
                   ` (2 preceding siblings ...)
  2022-02-15  0:07 ` [PATCH v3 3/3] ABI: testing: sysfs-class-power: Adds "Long Life" entry Ricardo Rivera-Matos
@ 2022-02-24 11:15 ` Sebastian Reichel
  3 siblings, 0 replies; 5+ messages in thread
From: Sebastian Reichel @ 2022-02-24 11:15 UTC (permalink / raw)
  To: Ricardo Rivera-Matos; +Cc: linux-pm, linux-kernel, patches

[-- Attachment #1: Type: text/plain, Size: 514 bytes --]

Hi,

On Mon, Feb 14, 2022 at 06:07:55PM -0600, Ricardo Rivera-Matos wrote:
> This patch series introduces a new POWER_SUPPLY_CHARGE_TYPE for bypass charging
> operation.
> 
> In fast charging ICs, the bypass operation is used to bypass the charging path
> around the charging IC's integrated power converter to its load. This allows
> for "smart" wall adaptors (such as USB PPS standard power adaptors) to handle
> the power conversion and heat dissipation externally.

Thanks, queued.

-- Sebastian

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-02-24 11:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-15  0:07 [PATCH v3 0/3] Introduces bypass charge type property Ricardo Rivera-Matos
2022-02-15  0:07 ` [PATCH v3 1/3] power: supply: Introduces bypass charging property Ricardo Rivera-Matos
2022-02-15  0:07 ` [PATCH v3 2/3] power: supply: bq25980: Implements POWER_SUPPLY_CHARGE_TYPE_BYPASS Ricardo Rivera-Matos
2022-02-15  0:07 ` [PATCH v3 3/3] ABI: testing: sysfs-class-power: Adds "Long Life" entry Ricardo Rivera-Matos
2022-02-24 11:15 ` [PATCH v3 0/3] Introduces bypass charge type property Sebastian Reichel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.