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