[v2,1/5] dt-bindings: arm: uniphier: Add system controller bindings

Message ID 20221107103410.3443-2-hayashi.kunihiko@socionext.com
State New
Headers
Series Add UniPhier boards support |

Commit Message

Kunihiko Hayashi Nov. 7, 2022, 10:34 a.m. UTC
  Add DT binding schema for system controller implemented in UniPhier SoCs.
This describes that the nodes defined here are treated as "syscon".

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 .../socionext/socionext,uniphier-sysctrl.yaml | 92 +++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
  

Comments

Krzysztof Kozlowski Nov. 8, 2022, 11:09 a.m. UTC | #1
On 07/11/2022 11:34, Kunihiko Hayashi wrote:
> Add DT binding schema for system controller implemented in UniPhier SoCs.
> This describes that the nodes defined here are treated as "syscon".
> 
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> ---
>  .../socionext/socionext,uniphier-sysctrl.yaml | 92 +++++++++++++++++++
>  1 file changed, 92 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
> 
> diff --git a/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
> new file mode 100644
> index 000000000000..be7cf72c232e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml

arm is only for top-level stuff. System controllers go to soc.

> @@ -0,0 +1,92 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/socionext/socionext,uniphier-sysctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Socionext UniPhier system controller
> +
> +maintainers:
> +  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> +
> +description: |+
> +  This describes the devicetree bindings for system controller
> +  implemented on Socionext UniPhier SoCs.

Drop "This describes the devicetree bindings for" and instead describe
the hardware.

> +
> +properties:
> +  compatible:
> +    oneOf:

You do not have more than one entry, so no need for oneOf.

> +      - items:
> +          - enum:
> +              # sysctrl
> +              - socionext,uniphier-ld4-sysctrl
> +              - socionext,uniphier-pro4-sysctrl
> +              - socionext,uniphier-pro5-sysctrl
> +              - socionext,uniphier-pxs2-sysctrl
> +              - socionext,uniphier-ld6b-sysctrl
> +              - socionext,uniphier-sld8-sysctrl
> +              - socionext,uniphier-ld11-sysctrl
> +              - socionext,uniphier-ld20-sysctrl
> +              - socionext,uniphier-pxs3-sysctrl
> +              - socionext,uniphier-nx1-sysctrl
> +              - socionext,uniphier-sysctrl
> +              # soc-glue
> +              - socionext,uniphier-ld4-soc-glue
> +              - socionext,uniphier-pro4-soc-glue
> +              - socionext,uniphier-pro5-soc-glue
> +              - socionext,uniphier-pxs2-soc-glue
> +              - socionext,uniphier-ld6b-soc-glue
> +              - socionext,uniphier-sld8-soc-glue
> +              - socionext,uniphier-ld11-soc-glue
> +              - socionext,uniphier-ld20-soc-glue
> +              - socionext,uniphier-pxs3-soc-glue
> +              - socionext,uniphier-nx1-soc-glue
> +              - socionext,uniphier-soc-glue
> +              # perictrl
> +              - socionext,uniphier-ld4-perictrl
> +              - socionext,uniphier-pro4-perictrl
> +              - socionext,uniphier-pro5-perictrl
> +              - socionext,uniphier-pxs2-perictrl
> +              - socionext,uniphier-ld6b-perictrl
> +              - socionext,uniphier-sld8-perictrl
> +              - socionext,uniphier-ld11-perictrl
> +              - socionext,uniphier-ld20-perictrl
> +              - socionext,uniphier-pxs3-perictrl
> +              - socionext,uniphier-nx1-perictrl
> +              - socionext,uniphier-perictrl
> +              # sdctrl
> +              - socionext,uniphier-ld4-sdctrl
> +              - socionext,uniphier-pro4-sdctrl
> +              - socionext,uniphier-pro5-sdctrl
> +              - socionext,uniphier-pxs2-sdctrl
> +              - socionext,uniphier-ld6b-sdctrl
> +              - socionext,uniphier-sld8-sdctrl
> +              - socionext,uniphier-ld11-sdctrl
> +              - socionext,uniphier-ld20-sdctrl
> +              - socionext,uniphier-pxs3-sdctrl
> +              - socionext,uniphier-nx1-sdctrl
> +              - socionext,uniphier-sdctrl
> +              # mioctrl
> +              - socionext,uniphier-ld4-mioctrl
> +              - socionext,uniphier-pro4-mioctrl
> +              - socionext,uniphier-sld8-mioctrl
> +              - socionext,uniphier-ld11-mioctrl
> +              - socionext,uniphier-mioctrl
> +              # adamv
> +              - socionext,uniphier-ld11-adamv
> +              - socionext,uniphier-ld20-adamv
> +              - socionext,uniphier-adamv
> +          - const: simple-mfd
> +          - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties:
> +  type: object

No, instead you should describe the children. This must me
additionalProperties: false

You also miss example.

Start from example-schema as your template or guidance.

Best regards,
Krzysztof
  
Kunihiko Hayashi Nov. 8, 2022, 2:30 p.m. UTC | #2
Hi Krzysztof,

On 2022/11/08 20:09, Krzysztof Kozlowski wrote:
> On 07/11/2022 11:34, Kunihiko Hayashi wrote:
>> Add DT binding schema for system controller implemented in UniPhier SoCs.
>> This describes that the nodes defined here are treated as "syscon".
>>
>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>> ---
>>   .../socionext/socionext,uniphier-sysctrl.yaml | 92 +++++++++++++++++++
>>   1 file changed, 92 insertions(+)
>>   create mode 100644
>> Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
>>
>> diff --git
>> a/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
>> b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
>> new file mode 100644
>> index 000000000000..be7cf72c232e
>> --- /dev/null
>> +++
>> b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
> 
> arm is only for top-level stuff. System controllers go to soc.

Okay. I wondered if I should put it here.
I'll make vendor's directory on "soc" and move it.


>> @@ -0,0 +1,92 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id:
>> http://devicetree.org/schemas/arm/socionext/socionext,uniphier-sysctrl.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Socionext UniPhier system controller
>> +
>> +maintainers:
>> +  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>> +
>> +description: |+
>> +  This describes the devicetree bindings for system controller
>> +  implemented on Socionext UniPhier SoCs.
> 
> Drop "This describes the devicetree bindings for" and instead describe
> the hardware.

Surely I think the system controller's description itself is insufficient.
This description contains multiple controllers, so add descriptions for each.


>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
> 
> You do not have more than one entry, so no need for oneOf.

Got it.

>> +      - items:
>> +          - enum:
>> +              # sysctrl
>> +              - socionext,uniphier-ld4-sysctrl
>> +              - socionext,uniphier-pro4-sysctrl
>> +              - socionext,uniphier-pro5-sysctrl
>> +              - socionext,uniphier-pxs2-sysctrl
>> +              - socionext,uniphier-ld6b-sysctrl
>> +              - socionext,uniphier-sld8-sysctrl
>> +              - socionext,uniphier-ld11-sysctrl
>> +              - socionext,uniphier-ld20-sysctrl
>> +              - socionext,uniphier-pxs3-sysctrl
>> +              - socionext,uniphier-nx1-sysctrl
>> +              - socionext,uniphier-sysctrl
>> +              # soc-glue
>> +              - socionext,uniphier-ld4-soc-glue
>> +              - socionext,uniphier-pro4-soc-glue
>> +              - socionext,uniphier-pro5-soc-glue
>> +              - socionext,uniphier-pxs2-soc-glue
>> +              - socionext,uniphier-ld6b-soc-glue
>> +              - socionext,uniphier-sld8-soc-glue
>> +              - socionext,uniphier-ld11-soc-glue
>> +              - socionext,uniphier-ld20-soc-glue
>> +              - socionext,uniphier-pxs3-soc-glue
>> +              - socionext,uniphier-nx1-soc-glue
>> +              - socionext,uniphier-soc-glue
>> +              # perictrl
>> +              - socionext,uniphier-ld4-perictrl
>> +              - socionext,uniphier-pro4-perictrl
>> +              - socionext,uniphier-pro5-perictrl
>> +              - socionext,uniphier-pxs2-perictrl
>> +              - socionext,uniphier-ld6b-perictrl
>> +              - socionext,uniphier-sld8-perictrl
>> +              - socionext,uniphier-ld11-perictrl
>> +              - socionext,uniphier-ld20-perictrl
>> +              - socionext,uniphier-pxs3-perictrl
>> +              - socionext,uniphier-nx1-perictrl
>> +              - socionext,uniphier-perictrl
>> +              # sdctrl
>> +              - socionext,uniphier-ld4-sdctrl
>> +              - socionext,uniphier-pro4-sdctrl
>> +              - socionext,uniphier-pro5-sdctrl
>> +              - socionext,uniphier-pxs2-sdctrl
>> +              - socionext,uniphier-ld6b-sdctrl
>> +              - socionext,uniphier-sld8-sdctrl
>> +              - socionext,uniphier-ld11-sdctrl
>> +              - socionext,uniphier-ld20-sdctrl
>> +              - socionext,uniphier-pxs3-sdctrl
>> +              - socionext,uniphier-nx1-sdctrl
>> +              - socionext,uniphier-sdctrl
>> +              # mioctrl
>> +              - socionext,uniphier-ld4-mioctrl
>> +              - socionext,uniphier-pro4-mioctrl
>> +              - socionext,uniphier-sld8-mioctrl
>> +              - socionext,uniphier-ld11-mioctrl
>> +              - socionext,uniphier-mioctrl
>> +              # adamv
>> +              - socionext,uniphier-ld11-adamv
>> +              - socionext,uniphier-ld20-adamv
>> +              - socionext,uniphier-adamv
>> +          - const: simple-mfd
>> +          - const: syscon
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +additionalProperties:
>> +  type: object
> 
> No, instead you should describe the children. This must me
> additionalProperties: false

Each controller has different children, so need to define children
for each controller using "if".

> You also miss example.
> 
> Start from example-schema as your template or guidance.

I see. I'll add example.

Thank you,

---
Best Regards
Kunihiko Hayashi
  
Krzysztof Kozlowski Nov. 8, 2022, 3:08 p.m. UTC | #3
On 08/11/2022 15:30, Kunihiko Hayashi wrote:
>>> +additionalProperties:
>>> +  type: object
>>
>> No, instead you should describe the children. This must me
>> additionalProperties: false
> 
> Each controller has different children, so need to define children
> for each controller using "if".

Then you should have different binding documents. Bindings should be
specific.

Best regards,
Krzysztof
  
Kunihiko Hayashi Nov. 11, 2022, 8:49 a.m. UTC | #4
On 2022/11/09 0:08, Krzysztof Kozlowski wrote:
> On 08/11/2022 15:30, Kunihiko Hayashi wrote:
>>>> +additionalProperties:
>>>> +  type: object
>>>
>>> No, instead you should describe the children. This must me
>>> additionalProperties: false
>>
>> Each controller has different children, so need to define children
>> for each controller using "if".
> 
> Then you should have different binding documents. Bindings should be
> specific.

I see. I'll separate this document into the specific documents.

Thank you,

---
Best Regards
Kunihiko Hayashi
  

Patch

diff --git a/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
new file mode 100644
index 000000000000..be7cf72c232e
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/socionext/socionext,uniphier-sysctrl.yaml
@@ -0,0 +1,92 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/socionext/socionext,uniphier-sysctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Socionext UniPhier system controller
+
+maintainers:
+  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+
+description: |+
+  This describes the devicetree bindings for system controller
+  implemented on Socionext UniPhier SoCs.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              # sysctrl
+              - socionext,uniphier-ld4-sysctrl
+              - socionext,uniphier-pro4-sysctrl
+              - socionext,uniphier-pro5-sysctrl
+              - socionext,uniphier-pxs2-sysctrl
+              - socionext,uniphier-ld6b-sysctrl
+              - socionext,uniphier-sld8-sysctrl
+              - socionext,uniphier-ld11-sysctrl
+              - socionext,uniphier-ld20-sysctrl
+              - socionext,uniphier-pxs3-sysctrl
+              - socionext,uniphier-nx1-sysctrl
+              - socionext,uniphier-sysctrl
+              # soc-glue
+              - socionext,uniphier-ld4-soc-glue
+              - socionext,uniphier-pro4-soc-glue
+              - socionext,uniphier-pro5-soc-glue
+              - socionext,uniphier-pxs2-soc-glue
+              - socionext,uniphier-ld6b-soc-glue
+              - socionext,uniphier-sld8-soc-glue
+              - socionext,uniphier-ld11-soc-glue
+              - socionext,uniphier-ld20-soc-glue
+              - socionext,uniphier-pxs3-soc-glue
+              - socionext,uniphier-nx1-soc-glue
+              - socionext,uniphier-soc-glue
+              # perictrl
+              - socionext,uniphier-ld4-perictrl
+              - socionext,uniphier-pro4-perictrl
+              - socionext,uniphier-pro5-perictrl
+              - socionext,uniphier-pxs2-perictrl
+              - socionext,uniphier-ld6b-perictrl
+              - socionext,uniphier-sld8-perictrl
+              - socionext,uniphier-ld11-perictrl
+              - socionext,uniphier-ld20-perictrl
+              - socionext,uniphier-pxs3-perictrl
+              - socionext,uniphier-nx1-perictrl
+              - socionext,uniphier-perictrl
+              # sdctrl
+              - socionext,uniphier-ld4-sdctrl
+              - socionext,uniphier-pro4-sdctrl
+              - socionext,uniphier-pro5-sdctrl
+              - socionext,uniphier-pxs2-sdctrl
+              - socionext,uniphier-ld6b-sdctrl
+              - socionext,uniphier-sld8-sdctrl
+              - socionext,uniphier-ld11-sdctrl
+              - socionext,uniphier-ld20-sdctrl
+              - socionext,uniphier-pxs3-sdctrl
+              - socionext,uniphier-nx1-sdctrl
+              - socionext,uniphier-sdctrl
+              # mioctrl
+              - socionext,uniphier-ld4-mioctrl
+              - socionext,uniphier-pro4-mioctrl
+              - socionext,uniphier-sld8-mioctrl
+              - socionext,uniphier-ld11-mioctrl
+              - socionext,uniphier-mioctrl
+              # adamv
+              - socionext,uniphier-ld11-adamv
+              - socionext,uniphier-ld20-adamv
+              - socionext,uniphier-adamv
+          - const: simple-mfd
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties:
+  type: object
+
+...