[v4,07/18] dt-bindings: soc: mobileye: add EyeQ5 OLB system controller

Message ID 20240131-mbly-clk-v4-7-bcd00510d6a0@bootlin.com
State New
Headers
Series Add support for Mobileye EyeQ5 system controller |

Commit Message

Théo Lebrun Jan. 31, 2024, 4:26 p.m. UTC
  Add documentation to describe the "Other Logic Block" syscon.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml  | 89 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 2 files changed, 90 insertions(+)
  

Comments

Krzysztof Kozlowski Feb. 1, 2024, 9:36 a.m. UTC | #1
On 31/01/2024 17:26, Théo Lebrun wrote:
> Add documentation to describe the "Other Logic Block" syscon.
> 
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
> ---
>  .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml  | 89 ++++++++++++++++++++++
>  MAINTAINERS                                        |  1 +
>  2 files changed, 90 insertions(+)
> 

..

> +required:
> +  - compatible
> +  - reg
> +  - '#address-cells'
> +  - '#size-cells'
> +  - ranges
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    soc {
> +      #address-cells = <2>;
> +      #size-cells = <2>;
> +
> +      system-controller@e00000 {
> +        compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd";
> +        reg = <0x0 0xe00000 0x0 0x400>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x0 0x0 0xe00000 0x400>;

If there is going to be any resend:
1. ranges follows reg
2. Use lower-case hex

See DTS coding style.

> +
> +        clocks: clock-controller@2c {
> +          compatible = "mobileye,eyeq5-clk";
> +          reg = <0x02C 0x50>, <0x11C 0x04>;
> +          reg-names = "plls", "ospi";
> +          #clock-cells = <1>;
> +          clocks = <&xtal>;
> +          clock-names = "ref";
> +        };
> +
> +        reset: reset-controller@0 {

0 is before 2c, keep nodes properly ordered.



> +          compatible = "mobileye,eyeq5-reset";
> +          reg = <0x000 0x0C>, <0x200 0x34>, <0x120 0x04>;
> +          reg-names = "d0", "d1", "d2";
> +          #reset-cells = <2>;
> +        };
> +
> +        pinctrl: pinctrl@b0 {
> +          compatible = "mobileye,eyeq5-pinctrl";
> +          reg = <0x0B0 0x30>;

This looks incomplete. Your binding mentions children, so provide at
least one child.

> 

Best regards,
Krzysztof
  
Théo Lebrun Feb. 1, 2024, 10:45 a.m. UTC | #2
Hello,

On Thu Feb 1, 2024 at 10:36 AM CET, Krzysztof Kozlowski wrote:
> On 31/01/2024 17:26, Théo Lebrun wrote:
> > Add documentation to describe the "Other Logic Block" syscon.
> > 
> > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
> > ---
> >  .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml  | 89 ++++++++++++++++++++++
> >  MAINTAINERS                                        |  1 +
> >  2 files changed, 90 insertions(+)
> > 
>
> ...
>
> > +required:
> > +  - compatible
> > +  - reg
> > +  - '#address-cells'
> > +  - '#size-cells'
> > +  - ranges
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    soc {
> > +      #address-cells = <2>;
> > +      #size-cells = <2>;
> > +
> > +      system-controller@e00000 {
> > +        compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd";
> > +        reg = <0x0 0xe00000 0x0 0x400>;
> > +        #address-cells = <1>;
> > +        #size-cells = <1>;
> > +        ranges = <0x0 0x0 0xe00000 0x400>;
>
> If there is going to be any resend:
> 1. ranges follows reg
> 2. Use lower-case hex
>
> See DTS coding style.

I'm re-reading Documentation/devicetree/bindings/dts-coding-style.rst
right now. Thanks.

>
> > +
> > +        clocks: clock-controller@2c {
> > +          compatible = "mobileye,eyeq5-clk";
> > +          reg = <0x02C 0x50>, <0x11C 0x04>;
> > +          reg-names = "plls", "ospi";
> > +          #clock-cells = <1>;
> > +          clocks = <&xtal>;
> > +          clock-names = "ref";
> > +        };
> > +
> > +        reset: reset-controller@0 {
>
> 0 is before 2c, keep nodes properly ordered.

Indeed.

> > +          compatible = "mobileye,eyeq5-reset";
> > +          reg = <0x000 0x0C>, <0x200 0x34>, <0x120 0x04>;
> > +          reg-names = "d0", "d1", "d2";
> > +          #reset-cells = <2>;
> > +        };
> > +
> > +        pinctrl: pinctrl@b0 {
> > +          compatible = "mobileye,eyeq5-pinctrl";
> > +          reg = <0x0B0 0x30>;
>
> This looks incomplete. Your binding mentions children, so provide at
> least one child.

Will do. Didn't think about adding a child example to the dt-bindings
example.

Thanks,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
  

Patch

diff --git a/Documentation/devicetree/bindings/soc/mobileye/mobileye,eyeq5-olb.yaml b/Documentation/devicetree/bindings/soc/mobileye/mobileye,eyeq5-olb.yaml
new file mode 100644
index 000000000000..92d8e30fdc27
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/mobileye/mobileye,eyeq5-olb.yaml
@@ -0,0 +1,89 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/mobileye/mobileye,eyeq5-olb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mobileye EyeQ5 SoC system controller
+
+maintainers:
+  - Grégory Clement <gregory.clement@bootlin.com>
+  - Théo Lebrun <theo.lebrun@bootlin.com>
+  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
+
+description:
+  OLB ("Other Logic Block") is a hardware block grouping smaller blocks. Clocks,
+  resets, pinctrl are being handled from here.
+
+properties:
+  compatible:
+    items:
+      - const: mobileye,eyeq5-olb
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  ranges: true
+
+patternProperties:
+  "^clock-controller@[0-9a-f]+$":
+    $ref: /schemas/clock/mobileye,eyeq5-clk.yaml#
+
+  "^reset-controller@[0-9a-f]+$":
+    $ref: /schemas/reset/mobileye,eyeq5-reset.yaml#
+
+  "^pinctrl@[0-9a-f]+$":
+    $ref: /schemas/pinctrl/mobileye,eyeq5-pinctrl.yaml#
+
+required:
+  - compatible
+  - reg
+  - '#address-cells'
+  - '#size-cells'
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      system-controller@e00000 {
+        compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd";
+        reg = <0x0 0xe00000 0x0 0x400>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0x0 0x0 0xe00000 0x400>;
+
+        clocks: clock-controller@2c {
+          compatible = "mobileye,eyeq5-clk";
+          reg = <0x02C 0x50>, <0x11C 0x04>;
+          reg-names = "plls", "ospi";
+          #clock-cells = <1>;
+          clocks = <&xtal>;
+          clock-names = "ref";
+        };
+
+        reset: reset-controller@0 {
+          compatible = "mobileye,eyeq5-reset";
+          reg = <0x000 0x0C>, <0x200 0x34>, <0x120 0x04>;
+          reg-names = "d0", "d1", "d2";
+          #reset-cells = <2>;
+        };
+
+        pinctrl: pinctrl@b0 {
+          compatible = "mobileye,eyeq5-pinctrl";
+          reg = <0x0B0 0x30>;
+        };
+      };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 15c9987af637..886de494df31 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14790,6 +14790,7 @@  F:	Documentation/devicetree/bindings/clock/mobileye,eyeq5-clk.yaml
 F:	Documentation/devicetree/bindings/mips/mobileye.yaml
 F:	Documentation/devicetree/bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml
 F:	Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml
+F:	Documentation/devicetree/bindings/soc/mobileye/
 F:	arch/mips/boot/dts/mobileye/
 F:	arch/mips/configs/eyeq5_defconfig
 F:	arch/mips/mobileye/board-epm5.its.S