[PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child

Samuel Holland posted 4 patches 3 years, 8 months ago
[PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Samuel Holland 3 years, 8 months ago
Some sunxi SoCs have in-package regulators controlled by a register in
the system control MMIO block. Allow a child node for these regulators
in addition to SRAM child nodes.

Signed-off-by: Samuel Holland <samuel@sholland.org>
---

Changes in v3:
 - Require the regulators node to have a unit address
 - Reference the regulator schema from the SRAM controller schema
 - Move the system LDOs example to the SRAM controller schema
 - Reorder the patches so the example passes validation

Changes in v2:
 - New patch for v2

 .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
index d64c1b28fb61..915ca85c3f10 100644
--- a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
+++ b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
@@ -56,6 +56,10 @@ properties:
   ranges: true
 
 patternProperties:
+  "^regulators@[0-9a-f]+$":
+    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
+    unevaluatedProperties: false
+
   "^sram@[a-z0-9]+":
     type: object
 
@@ -130,3 +134,28 @@ examples:
         };
       };
     };
+
+  - |
+    syscon@3000000 {
+      compatible = "allwinner,sun20i-d1-system-control";
+      reg = <0x3000000 0x1000>;
+      ranges;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      regulators@3000150 {
+        compatible = "allwinner,sun20i-d1-system-ldos";
+        reg = <0x3000150 0x4>;
+
+        reg_ldoa: ldoa {
+          regulator-min-microvolt = <1800000>;
+          regulator-max-microvolt = <1800000>;
+        };
+
+        reg_ldob: ldob {
+          regulator-name = "vcc-dram";
+          regulator-min-microvolt = <1500000>;
+          regulator-max-microvolt = <1500000>;
+        };
+      };
+    };
-- 
2.35.1
Re: [PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Krzysztof Kozlowski 3 years, 8 months ago
On 15/08/2022 07:34, Samuel Holland wrote:
> Some sunxi SoCs have in-package regulators controlled by a register in
> the system control MMIO block. Allow a child node for these regulators
> in addition to SRAM child nodes.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>
> ---
> 
> Changes in v3:
>  - Require the regulators node to have a unit address
>  - Reference the regulator schema from the SRAM controller schema
>  - Move the system LDOs example to the SRAM controller schema
>  - Reorder the patches so the example passes validation
> 
> Changes in v2:
>  - New patch for v2
> 
>  .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
> index d64c1b28fb61..915ca85c3f10 100644
> --- a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
> +++ b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
> @@ -56,6 +56,10 @@ properties:
>    ranges: true
>  
>  patternProperties:
> +  "^regulators@[0-9a-f]+$":
> +    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
> +    unevaluatedProperties: false

unevaluatedProperties is not needed. Your other schema does not allow
anything else here.

> +
>    "^sram@[a-z0-9]+":
>      type: object
>  
> @@ -130,3 +134,28 @@ examples:
>          };
>        };
>      };
> +
> +  - |
> +    syscon@3000000 {
> +      compatible = "allwinner,sun20i-d1-system-control";

Your other example uses simple-mfd, syscon... A bit confusing.

> +      reg = <0x3000000 0x1000>;
> +      ranges;
> +      #address-cells = <1>;
> +      #size-cells = <1>;
> +
> +      regulators@3000150 {
> +        compatible = "allwinner,sun20i-d1-system-ldos";
> +        reg = <0x3000150 0x4>;
> +
> +        reg_ldoa: ldoa {
> +          regulator-min-microvolt = <1800000>;
> +          regulator-max-microvolt = <1800000>;
> +        };
> +
> +        reg_ldob: ldob {
> +          regulator-name = "vcc-dram";
> +          regulator-min-microvolt = <1500000>;
> +          regulator-max-microvolt = <1500000>;
> +        };
> +      };
> +    };


Best regards,
Krzysztof
Re: [PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Samuel Holland 3 years, 7 months ago
On 8/16/22 4:59 AM, Krzysztof Kozlowski wrote:
> On 15/08/2022 07:34, Samuel Holland wrote:
>> Some sunxi SoCs have in-package regulators controlled by a register in
>> the system control MMIO block. Allow a child node for these regulators
>> in addition to SRAM child nodes.
>>
>> Signed-off-by: Samuel Holland <samuel@sholland.org>
>> ---
>>
>> Changes in v3:
>>  - Require the regulators node to have a unit address
>>  - Reference the regulator schema from the SRAM controller schema
>>  - Move the system LDOs example to the SRAM controller schema
>>  - Reorder the patches so the example passes validation
>>
>> Changes in v2:
>>  - New patch for v2
>>
>>  .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
>>  1 file changed, 29 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>> index d64c1b28fb61..915ca85c3f10 100644
>> --- a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>> +++ b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>> @@ -56,6 +56,10 @@ properties:
>>    ranges: true
>>  
>>  patternProperties:
>> +  "^regulators@[0-9a-f]+$":
>> +    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
>> +    unevaluatedProperties: false
> 
> unevaluatedProperties is not needed. Your other schema does not allow
> anything else here.

I can remove it. I added it because it looks like the dt-schema tools use it as
an indicator that the matched properties are child nodes[1]. Maybe that is not
relevant here?

Regards,
Samuel

[1]: https://github.com/devicetree-org/dt-schema/commit/b12b3737cabc
Re: [PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Krzysztof Kozlowski 3 years, 7 months ago
On 17/08/2022 11:47, Samuel Holland wrote:
> On 8/16/22 4:59 AM, Krzysztof Kozlowski wrote:
>> On 15/08/2022 07:34, Samuel Holland wrote:
>>> Some sunxi SoCs have in-package regulators controlled by a register in
>>> the system control MMIO block. Allow a child node for these regulators
>>> in addition to SRAM child nodes.
>>>
>>> Signed-off-by: Samuel Holland <samuel@sholland.org>
>>> ---
>>>
>>> Changes in v3:
>>>  - Require the regulators node to have a unit address
>>>  - Reference the regulator schema from the SRAM controller schema
>>>  - Move the system LDOs example to the SRAM controller schema
>>>  - Reorder the patches so the example passes validation
>>>
>>> Changes in v2:
>>>  - New patch for v2
>>>
>>>  .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
>>>  1 file changed, 29 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>>> index d64c1b28fb61..915ca85c3f10 100644
>>> --- a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>>> +++ b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>>> @@ -56,6 +56,10 @@ properties:
>>>    ranges: true
>>>  
>>>  patternProperties:
>>> +  "^regulators@[0-9a-f]+$":
>>> +    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
>>> +    unevaluatedProperties: false
>>
>> unevaluatedProperties is not needed. Your other schema does not allow
>> anything else here.
> 
> I can remove it. I added it because it looks like the dt-schema tools use it as
> an indicator that the matched properties are child nodes[1]. Maybe that is not
> relevant here?

It is not relevant here as the other schema does not allow anything else.

Best regards,
Krzysztof
Re: [PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Rob Herring 3 years, 8 months ago
On Sun, 14 Aug 2022 23:34:34 -0500, Samuel Holland wrote:
> Some sunxi SoCs have in-package regulators controlled by a register in
> the system control MMIO block. Allow a child node for these regulators
> in addition to SRAM child nodes.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>
> ---
> 
> Changes in v3:
>  - Require the regulators node to have a unit address
>  - Reference the regulator schema from the SRAM controller schema
>  - Move the system LDOs example to the SRAM controller schema
>  - Reorder the patches so the example passes validation
> 
> Changes in v2:
>  - New patch for v2
> 
>  .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.example.dtb:0:0: /example-1/syscon@3000000: failed to match any schema with compatible: ['allwinner,sun20i-d1-system-control']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Re: [PATCH v3 3/4] dt-bindings: sram: sunxi-sram: Add optional regulators child
Posted by Heiko Stübner 3 years, 8 months ago
Am Montag, 15. August 2022, 16:01:47 CEST schrieb Rob Herring:
> On Sun, 14 Aug 2022 23:34:34 -0500, Samuel Holland wrote:
> > Some sunxi SoCs have in-package regulators controlled by a register in
> > the system control MMIO block. Allow a child node for these regulators
> > in addition to SRAM child nodes.
> > 
> > Signed-off-by: Samuel Holland <samuel@sholland.org>
> > ---
> > 
> > Changes in v3:
> >  - Require the regulators node to have a unit address
> >  - Reference the regulator schema from the SRAM controller schema
> >  - Move the system LDOs example to the SRAM controller schema
> >  - Reorder the patches so the example passes validation
> > 
> > Changes in v2:
> >  - New patch for v2
> > 
> >  .../allwinner,sun4i-a10-system-control.yaml   | 29 +++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> > 
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.example.dtb:0:0: /example-1/syscon@3000000: failed to match any schema with compatible: ['allwinner,sun20i-d1-system-control']

This got added in
	"dt-bindings: sram: sunxi-sram: Add D1 compatible string"

( https://lore.kernel.org/r/20220815041248.53268-3-samuel@sholland.org )

> 
> doc reference errors (make refcheckdocs):
> 
> See https://patchwork.ozlabs.org/patch/
> 
> This check can fail if there are any dependencies. The base for a patch
> series is generally the most recent rc1.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit.
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>