xref: /linux/Documentation/devicetree/bindings/soc/mobileye/mobileye,eyeq7h-olb.yaml (revision 502d45774af09f1c681c754c4b7cdfb5d7f72fd9)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/mobileye/mobileye,eyeq7h-olb.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mobileye EyeQ7H SoC system controller
8
9maintainers:
10  - Benoît Monin <benoit.monin@bootlin.com>
11  - Grégory Clement <gregory.clement@bootlin.com>
12  - Théo Lebrun <theo.lebrun@bootlin.com>
13  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
14
15description:
16  OLB ("Other Logic Block") is a hardware system controller grouping
17  smaller blocks. Clocks and resets are generated by those blocks and
18  used by internal controllers of the SoC. The EyeQ7H SoC hosts 14
19  different OLB.
20
21properties:
22  compatible:
23    items:
24      - enum:
25          - mobileye,eyeq7h-acc0-olb
26          - mobileye,eyeq7h-acc1-olb
27          - mobileye,eyeq7h-ddr0-olb
28          - mobileye,eyeq7h-ddr1-olb
29          - mobileye,eyeq7h-east-olb
30          - mobileye,eyeq7h-mips0-olb
31          - mobileye,eyeq7h-mips1-olb
32          - mobileye,eyeq7h-mips2-olb
33          - mobileye,eyeq7h-periph-east-olb
34          - mobileye,eyeq7h-periph-west-olb
35          - mobileye,eyeq7h-south-olb
36          - mobileye,eyeq7h-west-olb
37          - mobileye,eyeq7h-xnn0-olb
38          - mobileye,eyeq7h-xnn1-olb
39      - const: syscon
40
41  reg:
42    maxItems: 1
43
44  '#reset-cells':
45    description:
46      First cell is domain and optional if compatible has a single reset domain.
47      Second cell is reset index inside that domain.
48    enum: [ 1, 2 ]
49
50  '#clock-cells':
51    const: 1
52
53  clocks:
54    minItems: 1
55    maxItems: 2
56
57  clock-names:
58    minItems: 1
59    maxItems: 2
60
61required:
62  - compatible
63  - reg
64  - '#clock-cells'
65  - clocks
66  - clock-names
67
68allOf:
69  - if:
70      properties:
71        compatible:
72          contains:
73            enum:
74              - mobileye,eyeq7h-ddr0-olb
75              - mobileye,eyeq7h-ddr1-olb
76              - mobileye,eyeq7h-mips0-olb
77              - mobileye,eyeq7h-mips1-olb
78              - mobileye,eyeq7h-mips2-olb
79              - mobileye,eyeq7h-periph-east-olb
80              - mobileye,eyeq7h-south-olb
81    then:
82      properties:
83        clocks:
84          items:
85            - description: Reference input clock.
86        clock-names:
87          items:
88            - const: ref
89
90  - if:
91      properties:
92        compatible:
93          contains:
94            enum:
95              - mobileye,eyeq7h-east-olb
96              - mobileye,eyeq7h-west-olb
97    then:
98      properties:
99        clocks:
100          items:
101            - description: Reference input clock from the main oscillator.
102            - description: 100MHz reference input clock.
103        clock-names:
104          items:
105            - const: ref
106            - const: ref_100p0
107
108  - if:
109      properties:
110        compatible:
111          contains:
112            enum:
113              - mobileye,eyeq7h-acc0-olb
114              - mobileye,eyeq7h-acc1-olb
115              - mobileye,eyeq7h-periph-west-olb
116              - mobileye,eyeq7h-xnn0-olb
117              - mobileye,eyeq7h-xnn1-olb
118    then:
119      properties:
120        clocks:
121          items:
122            - description: 100MHz reference input clock.
123            - description: 106.6MHz reference input clock.
124        clock-names:
125          items:
126            - const: ref_100p0
127            - const: ref_106p6
128
129  - if:
130      properties:
131        compatible:
132          contains:
133            enum:
134              - mobileye,eyeq7h-ddr0-olb
135              - mobileye,eyeq7h-ddr1-olb
136              - mobileye,eyeq7h-east-olb
137              - mobileye,eyeq7h-periph-east-olb
138              - mobileye,eyeq7h-periph-west-olb
139              - mobileye,eyeq7h-west-olb
140    then:
141      properties:
142        '#reset-cells':
143          const: 1
144      required:
145        - '#reset-cells'
146
147  - if:
148      properties:
149        compatible:
150          contains:
151            enum:
152              - mobileye,eyeq7h-acc0-olb
153              - mobileye,eyeq7h-acc1-olb
154              - mobileye,eyeq7h-south-olb
155              - mobileye,eyeq7h-xnn0-olb
156              - mobileye,eyeq7h-xnn1-olb
157    then:
158      properties:
159        '#reset-cells':
160          const: 2
161      required:
162        - '#reset-cells'
163
164  - if:
165      properties:
166        compatible:
167          contains:
168            enum:
169              - mobileye,eyeq7h-mips0-olb
170              - mobileye,eyeq7h-mips1-olb
171              - mobileye,eyeq7h-mips2-olb
172    then:
173      properties:
174        '#reset-cells': false
175
176additionalProperties: false
177
178examples:
179  - |
180    soc {
181      #address-cells = <2>;
182      #size-cells = <2>;
183
184      system-controller0@45000000 {
185        compatible = "mobileye,eyeq7h-acc0-olb", "syscon";
186        reg = <0x0 0x45000000 0x0 0x1000>;
187        #reset-cells = <2>;
188        #clock-cells = <1>;
189        clocks = <&olb_south 7>, <&olb_east 5>;
190        clock-names = "ref_100p0", "ref_106p6";
191      };
192    };
193