* [PATCH 0/2] power: supply: gpio-charger: add support for default charge current limit
@ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay
0 siblings, 0 replies; 9+ messages in thread
From: Dimitri Fedrau @ 2024-12-11 7:29 UTC (permalink / raw)
To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau,
Dimitri Fedrau
The driver defaults to smallest current limitation for safety reasons. Add
support for setting default current limitation via DT.
Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
---
Dimitri Fedrau (2):
dt-bindings: power: supply: gpio-charger: add support for default charge current limit
power: supply: gpio-charger: add support for default charge current limit
.../devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++
drivers/power/supply/gpio-charger.c | 13 +++++++++++++
2 files changed, 17 insertions(+)
---
base-commit: 88e4a7dc04b7828315292eb3acaa466c9c123d8b
change-id: 20241209-default-charge-current-limit-69ae7945061a
Best regards,
--
Dimitri Fedrau <dimitri.fedrau@liebherr.com>
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 0/2] power: supply: gpio-charger: add support for default charge current limit @ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay 0 siblings, 0 replies; 9+ messages in thread From: Dimitri Fedrau via B4 Relay @ 2024-12-11 7:29 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau, Dimitri Fedrau The driver defaults to smallest current limitation for safety reasons. Add support for setting default current limitation via DT. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> --- Dimitri Fedrau (2): dt-bindings: power: supply: gpio-charger: add support for default charge current limit power: supply: gpio-charger: add support for default charge current limit .../devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++ drivers/power/supply/gpio-charger.c | 13 +++++++++++++ 2 files changed, 17 insertions(+) --- base-commit: 88e4a7dc04b7828315292eb3acaa466c9c123d8b change-id: 20241209-default-charge-current-limit-69ae7945061a Best regards, -- Dimitri Fedrau <dimitri.fedrau@liebherr.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] dt-bindings: power: supply: gpio-charger: add support for default charge current limit 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay @ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay -1 siblings, 0 replies; 9+ messages in thread From: Dimitri Fedrau @ 2024-12-11 7:29 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau, Dimitri Fedrau Add binding for default charge current limit. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> --- Documentation/devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml index 89f8e2bcb2d7836c6a4308aff51721bd83fa3ba1..545fdd7133daf67b5bc238c5af26d0cbd8b44eae 100644 --- a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml +++ b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml @@ -58,6 +58,10 @@ properties: charge-current-limit-gpios property. Bit 1 second to last GPIO and so on. + charge-current-limit-default: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Default charge current limit in uA. + required: - compatible -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/2] dt-bindings: power: supply: gpio-charger: add support for default charge current limit @ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay 0 siblings, 0 replies; 9+ messages in thread From: Dimitri Fedrau via B4 Relay @ 2024-12-11 7:29 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau, Dimitri Fedrau From: Dimitri Fedrau <dimitri.fedrau@liebherr.com> Add binding for default charge current limit. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> --- Documentation/devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml index 89f8e2bcb2d7836c6a4308aff51721bd83fa3ba1..545fdd7133daf67b5bc238c5af26d0cbd8b44eae 100644 --- a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml +++ b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml @@ -58,6 +58,10 @@ properties: charge-current-limit-gpios property. Bit 1 second to last GPIO and so on. + charge-current-limit-default: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Default charge current limit in uA. + required: - compatible -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: supply: gpio-charger: add support for default charge current limit 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay (?) @ 2024-12-13 11:00 ` Krzysztof Kozlowski 2024-12-13 14:19 ` Dimitri Fedrau -1 siblings, 1 reply; 9+ messages in thread From: Krzysztof Kozlowski @ 2024-12-13 11:00 UTC (permalink / raw) To: Dimitri Fedrau Cc: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-pm, devicetree, linux-kernel, Dimitri Fedrau On Wed, Dec 11, 2024 at 08:29:09AM +0100, Dimitri Fedrau wrote: > Add binding for default charge current limit. Why? > > Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> > --- > Documentation/devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > index 89f8e2bcb2d7836c6a4308aff51721bd83fa3ba1..545fdd7133daf67b5bc238c5af26d0cbd8b44eae 100644 > --- a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > +++ b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > @@ -58,6 +58,10 @@ properties: > charge-current-limit-gpios property. Bit 1 second to last > GPIO and so on. > > + charge-current-limit-default: Use standard property suffixes - see other bindings how they define charge current. git grep charge -- Documentation/devicetree/bindings/power/supply/ But what I don't get is why GPIO chager needs it, since this is non-configurable for GPIO charger. You have entire commit msg or property description to explain such things. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: supply: gpio-charger: add support for default charge current limit 2024-12-13 11:00 ` Krzysztof Kozlowski @ 2024-12-13 14:19 ` Dimitri Fedrau 2024-12-13 14:32 ` Krzysztof Kozlowski 0 siblings, 1 reply; 9+ messages in thread From: Dimitri Fedrau @ 2024-12-13 14:19 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Dimitri Fedrau, Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-pm, devicetree, linux-kernel Am Fri, Dec 13, 2024 at 12:00:46PM +0100 schrieb Krzysztof Kozlowski: > On Wed, Dec 11, 2024 at 08:29:09AM +0100, Dimitri Fedrau wrote: > > Add binding for default charge current limit. > > Why? > See below. > > > > Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> > > --- > > Documentation/devicetree/bindings/power/supply/gpio-charger.yaml | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > > index 89f8e2bcb2d7836c6a4308aff51721bd83fa3ba1..545fdd7133daf67b5bc238c5af26d0cbd8b44eae 100644 > > --- a/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > > +++ b/Documentation/devicetree/bindings/power/supply/gpio-charger.yaml > > @@ -58,6 +58,10 @@ properties: > > charge-current-limit-gpios property. Bit 1 second to last > > GPIO and so on. > > > > + charge-current-limit-default: > > Use standard property suffixes - see other bindings how they define > charge current. > git grep charge -- Documentation/devicetree/bindings/power/supply/ > Will fix it, thanks for the hint. > But what I don't get is why GPIO chager needs it, since this is > non-configurable for GPIO charger. > With properties charge-current-limit-gpios and charge-current-limit-mapping one can define charge current limits in uA using up to 32 GPIOs. At the moment the driver defaults to smallest current limitation for safety reasons. When disabling charging should be possible as in the example, the charger defaults to non-charging. By having a default the charge current limit can be setup on probe and charging is enabled. > You have entire commit msg or property description to explain such > things. > Will explain it in more detail. Best regards, Dimitri Fedrau ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: supply: gpio-charger: add support for default charge current limit 2024-12-13 14:19 ` Dimitri Fedrau @ 2024-12-13 14:32 ` Krzysztof Kozlowski 0 siblings, 0 replies; 9+ messages in thread From: Krzysztof Kozlowski @ 2024-12-13 14:32 UTC (permalink / raw) To: Dimitri Fedrau Cc: Dimitri Fedrau, Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-pm, devicetree, linux-kernel On 13/12/2024 15:19, Dimitri Fedrau wrote: > >> But what I don't get is why GPIO chager needs it, since this is >> non-configurable for GPIO charger. >> > With properties charge-current-limit-gpios and charge-current-limit-mapping > one can define charge current limits in uA using up to 32 GPIOs. At the > moment the driver defaults to smallest current limitation for safety > reasons. When disabling charging should be possible as in the example, > the charger defaults to non-charging. By having a default the charge > current limit can be setup on probe and charging is enabled. OK, the commit msg should explain the intention and real use case you are solving here. Plus you miss the dependency - this property depends on charge-current-limit-mapping. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] power: supply: gpio-charger: add support for default charge current limit 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay @ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay -1 siblings, 0 replies; 9+ messages in thread From: Dimitri Fedrau @ 2024-12-11 7:29 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau, Dimitri Fedrau The driver defaults to smallest current limitation for safety reasons. Add support for setting default current limitation via DT. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> --- drivers/power/supply/gpio-charger.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/power/supply/gpio-charger.c b/drivers/power/supply/gpio-charger.c index 68212b39785beabfe5536a18fa15bc249f7b1eea..1c1fce6579464b61dbaf4125d0a91dc34c18c4d0 100644 --- a/drivers/power/supply/gpio-charger.c +++ b/drivers/power/supply/gpio-charger.c @@ -187,6 +187,8 @@ static int init_charge_current_limit(struct device *dev, { int i, len; u32 cur_limit = U32_MAX; + bool set_def_limit; + u32 def_limit; gpio_charger->current_limit_gpios = devm_gpiod_get_array_optional(dev, "charge-current-limit", GPIOD_OUT_LOW); @@ -220,6 +222,9 @@ static int init_charge_current_limit(struct device *dev, if (len < 0) return len; + set_def_limit = !device_property_read_u32(dev, + "charge-current-limit-default", + &def_limit); for (i=0; i < gpio_charger->current_limit_map_size; i++) { if (gpio_charger->current_limit_map[i].limit_ua > cur_limit) { dev_err(dev, "charge-current-limit-mapping not sorted by current in descending order\n"); @@ -227,8 +232,16 @@ static int init_charge_current_limit(struct device *dev, } cur_limit = gpio_charger->current_limit_map[i].limit_ua; + if (set_def_limit && def_limit == cur_limit) { + set_charge_current_limit(gpio_charger, cur_limit); + return 0; + } } + if (set_def_limit) + dev_warn(dev, "charge-current-limit-default %u not listed in charge-current-limit-mapping\n", + def_limit); + /* default to smallest current limitation for safety reasons */ len = gpio_charger->current_limit_map_size - 1; set_charge_current_limit(gpio_charger, -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] power: supply: gpio-charger: add support for default charge current limit @ 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay 0 siblings, 0 replies; 9+ messages in thread From: Dimitri Fedrau via B4 Relay @ 2024-12-11 7:29 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-pm, devicetree, linux-kernel, Dimitri Fedrau, Dimitri Fedrau From: Dimitri Fedrau <dimitri.fedrau@liebherr.com> The driver defaults to smallest current limitation for safety reasons. Add support for setting default current limitation via DT. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com> --- drivers/power/supply/gpio-charger.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/power/supply/gpio-charger.c b/drivers/power/supply/gpio-charger.c index 68212b39785beabfe5536a18fa15bc249f7b1eea..1c1fce6579464b61dbaf4125d0a91dc34c18c4d0 100644 --- a/drivers/power/supply/gpio-charger.c +++ b/drivers/power/supply/gpio-charger.c @@ -187,6 +187,8 @@ static int init_charge_current_limit(struct device *dev, { int i, len; u32 cur_limit = U32_MAX; + bool set_def_limit; + u32 def_limit; gpio_charger->current_limit_gpios = devm_gpiod_get_array_optional(dev, "charge-current-limit", GPIOD_OUT_LOW); @@ -220,6 +222,9 @@ static int init_charge_current_limit(struct device *dev, if (len < 0) return len; + set_def_limit = !device_property_read_u32(dev, + "charge-current-limit-default", + &def_limit); for (i=0; i < gpio_charger->current_limit_map_size; i++) { if (gpio_charger->current_limit_map[i].limit_ua > cur_limit) { dev_err(dev, "charge-current-limit-mapping not sorted by current in descending order\n"); @@ -227,8 +232,16 @@ static int init_charge_current_limit(struct device *dev, } cur_limit = gpio_charger->current_limit_map[i].limit_ua; + if (set_def_limit && def_limit == cur_limit) { + set_charge_current_limit(gpio_charger, cur_limit); + return 0; + } } + if (set_def_limit) + dev_warn(dev, "charge-current-limit-default %u not listed in charge-current-limit-mapping\n", + def_limit); + /* default to smallest current limitation for safety reasons */ len = gpio_charger->current_limit_map_size - 1; set_charge_current_limit(gpio_charger, -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-13 14:32 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-11 7:29 [PATCH 0/2] power: supply: gpio-charger: add support for default charge current limit Dimitri Fedrau 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay 2024-12-11 7:29 ` [PATCH 1/2] dt-bindings: " Dimitri Fedrau 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay 2024-12-13 11:00 ` Krzysztof Kozlowski 2024-12-13 14:19 ` Dimitri Fedrau 2024-12-13 14:32 ` Krzysztof Kozlowski 2024-12-11 7:29 ` [PATCH 2/2] " Dimitri Fedrau 2024-12-11 7:29 ` Dimitri Fedrau via B4 Relay
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.