diff mbox series

[V3,05/15] dt-bindings: power: supply: axp20x: Add input-current-limit-microamp

Message ID 20240819164619.556309-6-macroalpha82@gmail.com (mailing list archive)
State Handled Elsewhere
Headers show
Series Add Battery and USB Supply for AXP717 | expand

Commit Message

Chris Morgan Aug. 19, 2024, 4:46 p.m. UTC
From: Chris Morgan <macromorgan@hotmail.com>

Allow specifying a hard limit of the maximum input current. Some PMICs
such as the AXP717 can pull up to 3.25A, so allow a value to be
specified that clamps this in the event the hardware is not designed
for it.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../x-powers,axp20x-usb-power-supply.yaml     | 69 ++++++++++++++++++-
 1 file changed, 66 insertions(+), 3 deletions(-)

Comments

Krzysztof Kozlowski Aug. 20, 2024, 7:42 a.m. UTC | #1
On Mon, Aug 19, 2024 at 11:46:09AM -0500, Chris Morgan wrote:
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Allow specifying a hard limit of the maximum input current. Some PMICs
> such as the AXP717 can pull up to 3.25A, so allow a value to be
> specified that clamps this in the event the hardware is not designed
> for it.
> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> ---
>  .../x-powers,axp20x-usb-power-supply.yaml     | 69 ++++++++++++++++++-
>  1 file changed, 66 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> index 34b7959d6772..9cc300e78f60 100644
> --- a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> +++ b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> @@ -15,9 +15,6 @@ maintainers:
>    - Chen-Yu Tsai <wens@csie.org>
>    - Sebastian Reichel <sre@kernel.org>
>  
> -allOf:
> -  - $ref: power-supply.yaml#
> -
>  properties:
>    compatible:
>      oneOf:
> @@ -31,8 +28,74 @@ properties:
>            - const: x-powers,axp803-usb-power-supply
>            - const: x-powers,axp813-usb-power-supply
>  
> +  input-current-limit-microamp:
> +    description:
> +      Optional value to clamp the maximum input current limit to for
> +      the device. If omitted, the programmed value from the EFUSE will
> +      be used.

minimum: 100000
maximum: 4000000
(or whatever the values are)

Best regards,
Krzysztof
Chris Morgan Aug. 20, 2024, 8:15 p.m. UTC | #2
On Tue, Aug 20, 2024 at 09:42:06AM +0200, Krzysztof Kozlowski wrote:
> On Mon, Aug 19, 2024 at 11:46:09AM -0500, Chris Morgan wrote:
> > From: Chris Morgan <macromorgan@hotmail.com>
> > 
> > Allow specifying a hard limit of the maximum input current. Some PMICs
> > such as the AXP717 can pull up to 3.25A, so allow a value to be
> > specified that clamps this in the event the hardware is not designed
> > for it.
> > 
> > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > ---
> >  .../x-powers,axp20x-usb-power-supply.yaml     | 69 ++++++++++++++++++-
> >  1 file changed, 66 insertions(+), 3 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> > index 34b7959d6772..9cc300e78f60 100644
> > --- a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> > +++ b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> > @@ -15,9 +15,6 @@ maintainers:
> >    - Chen-Yu Tsai <wens@csie.org>
> >    - Sebastian Reichel <sre@kernel.org>
> >  
> > -allOf:
> > -  - $ref: power-supply.yaml#
> > -
> >  properties:
> >    compatible:
> >      oneOf:
> > @@ -31,8 +28,74 @@ properties:
> >            - const: x-powers,axp803-usb-power-supply
> >            - const: x-powers,axp813-usb-power-supply
> >  
> > +  input-current-limit-microamp:
> > +    description:
> > +      Optional value to clamp the maximum input current limit to for
> > +      the device. If omitted, the programmed value from the EFUSE will
> > +      be used.
> 
> minimum: 100000
> maximum: 4000000
> (or whatever the values are)

It varies based on the compatible string. I've added all of the
restrictions below. Basically all but the axp717 have a table
of values available (as an enum), and the axp717 which is added
in a subsequent commit gets added as a minimum/maximum with a
description noting that steps are in values of 50000.

Thank you.

> 
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski Aug. 21, 2024, 6:37 a.m. UTC | #3
On 20/08/2024 22:15, Chris Morgan wrote:
> On Tue, Aug 20, 2024 at 09:42:06AM +0200, Krzysztof Kozlowski wrote:
>> On Mon, Aug 19, 2024 at 11:46:09AM -0500, Chris Morgan wrote:
>>> From: Chris Morgan <macromorgan@hotmail.com>
>>>
>>> Allow specifying a hard limit of the maximum input current. Some PMICs
>>> such as the AXP717 can pull up to 3.25A, so allow a value to be
>>> specified that clamps this in the event the hardware is not designed
>>> for it.
>>>
>>> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
>>> ---
>>>  .../x-powers,axp20x-usb-power-supply.yaml     | 69 ++++++++++++++++++-
>>>  1 file changed, 66 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
>>> index 34b7959d6772..9cc300e78f60 100644
>>> --- a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
>>> +++ b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
>>> @@ -15,9 +15,6 @@ maintainers:
>>>    - Chen-Yu Tsai <wens@csie.org>
>>>    - Sebastian Reichel <sre@kernel.org>
>>>  
>>> -allOf:
>>> -  - $ref: power-supply.yaml#
>>> -
>>>  properties:
>>>    compatible:
>>>      oneOf:
>>> @@ -31,8 +28,74 @@ properties:
>>>            - const: x-powers,axp803-usb-power-supply
>>>            - const: x-powers,axp813-usb-power-supply
>>>  
>>> +  input-current-limit-microamp:
>>> +    description:
>>> +      Optional value to clamp the maximum input current limit to for
>>> +      the device. If omitted, the programmed value from the EFUSE will
>>> +      be used.
>>
>> minimum: 100000
>> maximum: 4000000
>> (or whatever the values are)
> 
> It varies based on the compatible string. I've added all of the
> restrictions below. Basically all but the axp717 have a table
> of values available (as an enum), and the axp717 which is added
> in a subsequent commit gets added as a minimum/maximum with a
> description noting that steps are in values of 50000.

And you still need widest constraints here, because there is no final
"else" for all not-matched ifs, right?

Best regards,
Krzysztof
Chris Morgan Aug. 21, 2024, 8:15 p.m. UTC | #4
On Wed, Aug 21, 2024 at 08:37:59AM +0200, Krzysztof Kozlowski wrote:
> On 20/08/2024 22:15, Chris Morgan wrote:
> > On Tue, Aug 20, 2024 at 09:42:06AM +0200, Krzysztof Kozlowski wrote:
> >> On Mon, Aug 19, 2024 at 11:46:09AM -0500, Chris Morgan wrote:
> >>> From: Chris Morgan <macromorgan@hotmail.com>
> >>>
> >>> Allow specifying a hard limit of the maximum input current. Some PMICs
> >>> such as the AXP717 can pull up to 3.25A, so allow a value to be
> >>> specified that clamps this in the event the hardware is not designed
> >>> for it.
> >>>
> >>> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> >>> ---
> >>>  .../x-powers,axp20x-usb-power-supply.yaml     | 69 ++++++++++++++++++-
> >>>  1 file changed, 66 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> >>> index 34b7959d6772..9cc300e78f60 100644
> >>> --- a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> >>> +++ b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
> >>> @@ -15,9 +15,6 @@ maintainers:
> >>>    - Chen-Yu Tsai <wens@csie.org>
> >>>    - Sebastian Reichel <sre@kernel.org>
> >>>  
> >>> -allOf:
> >>> -  - $ref: power-supply.yaml#
> >>> -
> >>>  properties:
> >>>    compatible:
> >>>      oneOf:
> >>> @@ -31,8 +28,74 @@ properties:
> >>>            - const: x-powers,axp803-usb-power-supply
> >>>            - const: x-powers,axp813-usb-power-supply
> >>>  
> >>> +  input-current-limit-microamp:
> >>> +    description:
> >>> +      Optional value to clamp the maximum input current limit to for
> >>> +      the device. If omitted, the programmed value from the EFUSE will
> >>> +      be used.
> >>
> >> minimum: 100000
> >> maximum: 4000000
> >> (or whatever the values are)
> > 
> > It varies based on the compatible string. I've added all of the
> > restrictions below. Basically all but the axp717 have a table
> > of values available (as an enum), and the axp717 which is added
> > in a subsequent commit gets added as a minimum/maximum with a
> > description noting that steps are in values of 50000.
> 
> And you still need widest constraints here, because there is no final
> "else" for all not-matched ifs, right?
> 
> Best regards,
> Krzysztof
> 

That makes sense, thank you.
Chris
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
index 34b7959d6772..9cc300e78f60 100644
--- a/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
+++ b/Documentation/devicetree/bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
@@ -15,9 +15,6 @@  maintainers:
   - Chen-Yu Tsai <wens@csie.org>
   - Sebastian Reichel <sre@kernel.org>
 
-allOf:
-  - $ref: power-supply.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -31,8 +28,74 @@  properties:
           - const: x-powers,axp803-usb-power-supply
           - const: x-powers,axp813-usb-power-supply
 
+  input-current-limit-microamp:
+    description:
+      Optional value to clamp the maximum input current limit to for
+      the device. If omitted, the programmed value from the EFUSE will
+      be used.
 
 required:
   - compatible
 
+allOf:
+  - $ref: power-supply.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp192-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp202-usb-power-supply
+              - x-powers,axp223-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000, 900000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp221-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [500000, 900000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp717-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          description: Maximum input current in increments of 50000 uA.
+          minimum: 100000
+          maximum: 3250000
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp813-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000, 900000, 1500000, 2000000, 2500000,
+                 3000000, 3500000, 4000000]
+
 additionalProperties: false