[PATCH 01/34] dt-bindings: mfd: samsung,s2mps11: add s2mpg10

André Draszik posted 34 patches 1 month, 2 weeks ago
There is a newer version of this series
[PATCH 01/34] dt-bindings: mfd: samsung,s2mps11: add s2mpg10
Posted by André Draszik 1 month, 2 weeks ago
The Samsung S2MPG10 PMIC is similar to the existing PMICs supported by
this binding.

It is a Power Management IC for mobile applications with buck
converters, various LDOs, power meters, RTC, clock outputs, and
additional GPIOs interfaces.

Unlike other Samsung PMICs, communication is not via I2C, but via the
Samsung ACPM firmware, it therefore doesn't need a 'reg' property but a
handle to the ACPM firmware node instead.

S2MPG10 can also act as a system power controller allowing
implementation of a true cold-reset of the system.

Support for the other components will be added in subsequent future
patches.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
 .../devicetree/bindings/mfd/samsung,s2mps11.yaml   | 34 ++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
index ac5d0c149796b6a4034b5d4245bfa8be0433cfab..ae8adb80b3af7ec3722c2a5718ad8fddf0a5df34 100644
--- a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
+++ b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
@@ -20,6 +20,7 @@ description: |
 properties:
   compatible:
     enum:
+      - samsung,s2mpg10-pmic
       - samsung,s2mps11-pmic
       - samsung,s2mps13-pmic
       - samsung,s2mps14-pmic
@@ -43,6 +44,12 @@ properties:
     description:
       List of child nodes that specify the regulators.
 
+  exynos,acpm-ipc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: |
+      Phandle to the ACPM node for when ACPM is used to communicate with the
+      PMIC, rather than I2C.
+
   samsung,s2mps11-acokb-ground:
     description: |
       Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so
@@ -58,16 +65,39 @@ properties:
       reset (setting buck voltages to default values).
     type: boolean
 
+  system-power-controller: true
+
   wakeup-source: true
 
 required:
   - compatible
-  - reg
-  - regulators
 
 additionalProperties: false
 
 allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,s2mpg10-pmic
+    then:
+      properties:
+        regulators: false
+        samsung,s2mps11-acokb-ground: false
+        samsung,s2mps11-wrstbi-ground: false
+
+      required:
+        - exynos,acpm-ipc
+
+    else:
+      properties:
+        exynos,acpm-ipc: false
+        system-power-controller: false
+
+      required:
+        - reg
+        - regulators
+
   - if:
       properties:
         compatible:

-- 
2.49.0.395.g12beb8f557-goog

Re: [PATCH 01/34] dt-bindings: mfd: samsung,s2mps11: add s2mpg10
Posted by Rob Herring 1 month, 2 weeks ago
On Sun, Mar 23, 2025 at 10:39:17PM +0000, André Draszik wrote:
> The Samsung S2MPG10 PMIC is similar to the existing PMICs supported by
> this binding.
> 
> It is a Power Management IC for mobile applications with buck
> converters, various LDOs, power meters, RTC, clock outputs, and
> additional GPIOs interfaces.
> 
> Unlike other Samsung PMICs, communication is not via I2C, but via the
> Samsung ACPM firmware, it therefore doesn't need a 'reg' property but a
> handle to the ACPM firmware node instead.

Can it be a child node of the ACPM node instead?

> 
> S2MPG10 can also act as a system power controller allowing
> implementation of a true cold-reset of the system.
> 
> Support for the other components will be added in subsequent future
> patches.
> 
> Signed-off-by: André Draszik <andre.draszik@linaro.org>
> ---
>  .../devicetree/bindings/mfd/samsung,s2mps11.yaml   | 34 ++++++++++++++++++++--
>  1 file changed, 32 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> index ac5d0c149796b6a4034b5d4245bfa8be0433cfab..ae8adb80b3af7ec3722c2a5718ad8fddf0a5df34 100644
> --- a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> +++ b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> @@ -20,6 +20,7 @@ description: |
>  properties:
>    compatible:
>      enum:
> +      - samsung,s2mpg10-pmic
>        - samsung,s2mps11-pmic
>        - samsung,s2mps13-pmic
>        - samsung,s2mps14-pmic
> @@ -43,6 +44,12 @@ properties:
>      description:
>        List of child nodes that specify the regulators.
>  
> +  exynos,acpm-ipc:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: |

Don't need '|' if no formatting to preserve.

> +      Phandle to the ACPM node for when ACPM is used to communicate with the
> +      PMIC, rather than I2C.
> +
>    samsung,s2mps11-acokb-ground:
>      description: |
>        Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so
> @@ -58,16 +65,39 @@ properties:
>        reset (setting buck voltages to default values).
>      type: boolean
>  
> +  system-power-controller: true
> +
>    wakeup-source: true
>  
>  required:
>    - compatible
> -  - reg
> -  - regulators
>  
>  additionalProperties: false
>  
>  allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: samsung,s2mpg10-pmic
> +    then:
> +      properties:
> +        regulators: false
> +        samsung,s2mps11-acokb-ground: false
> +        samsung,s2mps11-wrstbi-ground: false
> +
> +      required:
> +        - exynos,acpm-ipc
> +
> +    else:
> +      properties:
> +        exynos,acpm-ipc: false
> +        system-power-controller: false
> +
> +      required:
> +        - reg
> +        - regulators
> +
>    - if:
>        properties:
>          compatible:
> 
> -- 
> 2.49.0.395.g12beb8f557-goog
> 
Re: [PATCH 01/34] dt-bindings: mfd: samsung,s2mps11: add s2mpg10
Posted by André Draszik 1 month, 2 weeks ago
Hi Rob,

Thanks for your review!

On Mon, 2025-03-24 at 11:55 -0500, Rob Herring wrote:
> On Sun, Mar 23, 2025 at 10:39:17PM +0000, André Draszik wrote:
> > The Samsung S2MPG10 PMIC is similar to the existing PMICs supported by
> > this binding.
> > 
> > It is a Power Management IC for mobile applications with buck
> > converters, various LDOs, power meters, RTC, clock outputs, and
> > additional GPIOs interfaces.
> > 
> > Unlike other Samsung PMICs, communication is not via I2C, but via the
> > Samsung ACPM firmware, it therefore doesn't need a 'reg' property but a
> > handle to the ACPM firmware node instead.
> 
> Can it be a child node of the ACPM node instead?

That should work, I'll do that instead so.

> > 
> > S2MPG10 can also act as a system power controller allowing
> > implementation of a true cold-reset of the system.
> > 
> > Support for the other components will be added in subsequent future
> > patches.
> > 
> > Signed-off-by: André Draszik <andre.draszik@linaro.org>
> > ---
> >  .../devicetree/bindings/mfd/samsung,s2mps11.yaml   | 34 ++++++++++++++++++++--
> >  1 file changed, 32 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> > index ac5d0c149796b6a4034b5d4245bfa8be0433cfab..ae8adb80b3af7ec3722c2a5718ad8fddf0a5df34 100644
> > --- a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
> > @@ -20,6 +20,7 @@ description: |
> >  properties:
> >    compatible:
> >      enum:
> > +      - samsung,s2mpg10-pmic
> >        - samsung,s2mps11-pmic
> >        - samsung,s2mps13-pmic
> >        - samsung,s2mps14-pmic
> > @@ -43,6 +44,12 @@ properties:
> >      description:
> >        List of child nodes that specify the regulators.
> >  
> > +  exynos,acpm-ipc:
> > +    $ref: /schemas/types.yaml#/definitions/phandle
> > +    description: |
> 
> Don't need '|' if no formatting to preserve.

Oops, yes, sorry.

Cheers,
Andre'

> 
> > +      Phandle to the ACPM node for when ACPM is used to communicate with the
> > +      PMIC, rather than I2C.
> > +
> >    samsung,s2mps11-acokb-ground:
> >      description: |
> >        Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so
> > @@ -58,16 +65,39 @@ properties:
> >        reset (setting buck voltages to default values).
> >      type: boolean
> >  
> > +  system-power-controller: true
> > +
> >    wakeup-source: true
> >  
> >  required:
> >    - compatible
> > -  - reg
> > -  - regulators
> >  
> >  additionalProperties: false
> >  
> >  allOf:
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: samsung,s2mpg10-pmic
> > +    then:
> > +      properties:
> > +        regulators: false
> > +        samsung,s2mps11-acokb-ground: false
> > +        samsung,s2mps11-wrstbi-ground: false
> > +
> > +      required:
> > +        - exynos,acpm-ipc
> > +
> > +    else:
> > +      properties:
> > +        exynos,acpm-ipc: false
> > +        system-power-controller: false
> > +
> > +      required:
> > +        - reg
> > +        - regulators
> > +
> >    - if:
> >        properties:
> >          compatible:
> > 
> > -- 
> > 2.49.0.395.g12beb8f557-goog
> >