xref: /linux/Documentation/devicetree/bindings/soc/mobileye/mobileye,eyeq6lplus-olb.yaml (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
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,eyeq6lplus-olb.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mobileye EyeQ6Lplus 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 block grouping smaller blocks.
17  Clocks, resets, pinctrl are being handled from here. EyeQ6Lplus hosts
18  a single instance providing 22 clocks, two reset domains and one bank
19  of 32 pins.
20
21properties:
22  compatible:
23    items:
24      - const: mobileye,eyeq6lplus-olb
25      - const: syscon
26
27  reg:
28    maxItems: 1
29
30  '#reset-cells':
31    description:
32      First cell is reset domain index.
33      Second cell is reset index inside that domain.
34    const: 2
35
36  '#clock-cells':
37    const: 1
38
39  clocks:
40    maxItems: 1
41    description:
42      Input parent clock to all PLLs. Expected to be the main crystal.
43
44  clock-names:
45    const: ref
46
47patternProperties:
48  '-pins?$':
49    type: object
50    description: Pin muxing configuration.
51    $ref: /schemas/pinctrl/pinmux-node.yaml#
52    additionalProperties: false
53    properties:
54      pins: true
55      function:
56        enum: [gpio, timer0, timer1, uart_ssi, spi0, uart0, timer2, timer3,
57               timer_ext0, spi1, timer_ext1, ext_ref_clk, mipi_ref_clk]
58      bias-disable: true
59      bias-pull-down: true
60      bias-pull-up: true
61      drive-strength: true
62    required:
63      - pins
64      - function
65    allOf:
66      - if:
67          properties:
68            function:
69              const: gpio
70        then:
71          properties:
72            pins:
73              items: # PA0 - PA31
74                pattern: '^(PA[1,2]?[0-9]|PA3[0,1])$'
75      - if:
76          properties:
77            function:
78              const: timer0
79        then:
80          properties:
81            pins:
82              items:
83                enum: [PA0, PA1]
84      - if:
85          properties:
86            function:
87              const: timer1
88        then:
89          properties:
90            pins:
91              items:
92                enum: [PA2, PA3]
93      - if:
94          properties:
95            function:
96              const: uart_ssi
97        then:
98          properties:
99            pins:
100              items:
101                enum: [PA4, PA5]
102      - if:
103          properties:
104            function:
105              const: spi0
106        then:
107          properties:
108            pins:
109              items:
110                enum: [PA6, PA7, PA8, PA9, PA10]
111      - if:
112          properties:
113            function:
114              const: uart0
115        then:
116          properties:
117            pins:
118              items:
119                enum: [PA11, PA12]
120      - if:
121          properties:
122            function:
123              const: timer2
124        then:
125          properties:
126            pins:
127              items:
128                enum: [PA13, PA14]
129      - if:
130          properties:
131            function:
132              const: timer3
133        then:
134          properties:
135            pins:
136              items:
137                enum: [PA15, PA16]
138      - if:
139          properties:
140            function:
141              const: timer_ext0
142        then:
143          properties:
144            pins:
145              items:
146                enum: [PA17, PA18, PA19, PA20]
147      - if:
148          properties:
149            function:
150              const: spi1
151        then:
152          properties:
153            pins:
154              items:
155                enum: [PA21, PA22, PA23, PA24, PA25]
156      - if:
157          properties:
158            function:
159              const: timer_ext1
160        then:
161          properties:
162            pins:
163              items:
164                enum: [PA26, PA27, PA28, PA29]
165      - if:
166          properties:
167            function:
168              const: ext_ref_clk
169        then:
170          properties:
171            pins:
172              items:
173                enum: [PA30]
174      - if:
175          properties:
176            function:
177              const: mipi_ref_clk
178        then:
179          properties:
180            pins:
181              items:
182                enum: [PA31]
183
184required:
185  - compatible
186  - reg
187  - '#clock-cells'
188  - clocks
189  - clock-names
190  - '#reset-cells'
191
192additionalProperties: false
193
194examples:
195  - |
196    soc {
197      #address-cells = <2>;
198      #size-cells = <2>;
199
200      system-controller@e8400000 {
201        compatible = "mobileye,eyeq6lplus-olb", "syscon";
202        reg = <0 0xe8400000 0x0 0x80000>;
203        #reset-cells = <2>;
204        #clock-cells = <1>;
205        clocks = <&xtal>;
206        clock-names = "ref";
207      };
208    };
209