xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*01950c46SEmmanuel Vadot%YAML 1.2
3*01950c46SEmmanuel Vadot---
4*01950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/mobileye,eyeq5-pinctrl.yaml#
5*01950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*01950c46SEmmanuel Vadot
7*01950c46SEmmanuel Vadottitle: Mobileye EyeQ5 pin controller
8*01950c46SEmmanuel Vadot
9*01950c46SEmmanuel Vadotdescription: >
10*01950c46SEmmanuel Vadot  The EyeQ5 pin controller handles the two pin banks of the system. It belongs
11*01950c46SEmmanuel Vadot  to a system-controller block called OLB.
12*01950c46SEmmanuel Vadot
13*01950c46SEmmanuel Vadot  Pin control is about bias (pull-down, pull-up), drive strength and muxing. Pin
14*01950c46SEmmanuel Vadot  muxing supports two functions for each pin: first is GPIO, second is
15*01950c46SEmmanuel Vadot  pin-dependent.
16*01950c46SEmmanuel Vadot
17*01950c46SEmmanuel Vadot  Pins and groups are bijective.
18*01950c46SEmmanuel Vadot
19*01950c46SEmmanuel Vadotmaintainers:
20*01950c46SEmmanuel Vadot  - Grégory Clement <gregory.clement@bootlin.com>
21*01950c46SEmmanuel Vadot  - Théo Lebrun <theo.lebrun@bootlin.com>
22*01950c46SEmmanuel Vadot  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
23*01950c46SEmmanuel Vadot
24*01950c46SEmmanuel Vadot$ref: pinctrl.yaml#
25*01950c46SEmmanuel Vadot
26*01950c46SEmmanuel Vadotproperties:
27*01950c46SEmmanuel Vadot  compatible:
28*01950c46SEmmanuel Vadot    enum:
29*01950c46SEmmanuel Vadot      - mobileye,eyeq5-pinctrl
30*01950c46SEmmanuel Vadot
31*01950c46SEmmanuel Vadot  reg:
32*01950c46SEmmanuel Vadot    maxItems: 1
33*01950c46SEmmanuel Vadot
34*01950c46SEmmanuel VadotpatternProperties:
35*01950c46SEmmanuel Vadot  "-pins?$":
36*01950c46SEmmanuel Vadot    type: object
37*01950c46SEmmanuel Vadot    description: Pin muxing configuration.
38*01950c46SEmmanuel Vadot    $ref: pinmux-node.yaml#
39*01950c46SEmmanuel Vadot    additionalProperties: false
40*01950c46SEmmanuel Vadot    properties:
41*01950c46SEmmanuel Vadot      pins: true
42*01950c46SEmmanuel Vadot      function:
43*01950c46SEmmanuel Vadot        enum: [gpio,
44*01950c46SEmmanuel Vadot               # Bank A
45*01950c46SEmmanuel Vadot               timer0, timer1, timer2, timer5, uart0, uart1, can0, can1, spi0,
46*01950c46SEmmanuel Vadot               spi1, refclk0,
47*01950c46SEmmanuel Vadot               # Bank B
48*01950c46SEmmanuel Vadot               timer3, timer4, timer6, uart2, can2, spi2, spi3, mclk0]
49*01950c46SEmmanuel Vadot      bias-disable: true
50*01950c46SEmmanuel Vadot      bias-pull-down: true
51*01950c46SEmmanuel Vadot      bias-pull-up: true
52*01950c46SEmmanuel Vadot      drive-strength: true
53*01950c46SEmmanuel Vadot    required:
54*01950c46SEmmanuel Vadot      - pins
55*01950c46SEmmanuel Vadot      - function
56*01950c46SEmmanuel Vadot    allOf:
57*01950c46SEmmanuel Vadot      - if:
58*01950c46SEmmanuel Vadot          properties:
59*01950c46SEmmanuel Vadot            function:
60*01950c46SEmmanuel Vadot              const: gpio
61*01950c46SEmmanuel Vadot        then:
62*01950c46SEmmanuel Vadot          properties:
63*01950c46SEmmanuel Vadot            pins:
64*01950c46SEmmanuel Vadot              items: # PA0 - PA28, PB0 - PB22
65*01950c46SEmmanuel Vadot                pattern: '^(P(A|B)1?[0-9]|PA2[0-8]|PB2[0-2])$'
66*01950c46SEmmanuel Vadot      - if:
67*01950c46SEmmanuel Vadot          properties:
68*01950c46SEmmanuel Vadot            function:
69*01950c46SEmmanuel Vadot              const: timer0
70*01950c46SEmmanuel Vadot        then:
71*01950c46SEmmanuel Vadot          properties:
72*01950c46SEmmanuel Vadot            pins:
73*01950c46SEmmanuel Vadot              items:
74*01950c46SEmmanuel Vadot                enum: [PA0, PA1]
75*01950c46SEmmanuel Vadot      - if:
76*01950c46SEmmanuel Vadot          properties:
77*01950c46SEmmanuel Vadot            function:
78*01950c46SEmmanuel Vadot              const: timer1
79*01950c46SEmmanuel Vadot        then:
80*01950c46SEmmanuel Vadot          properties:
81*01950c46SEmmanuel Vadot            pins:
82*01950c46SEmmanuel Vadot              items:
83*01950c46SEmmanuel Vadot                enum: [PA2, PA3]
84*01950c46SEmmanuel Vadot      - if:
85*01950c46SEmmanuel Vadot          properties:
86*01950c46SEmmanuel Vadot            function:
87*01950c46SEmmanuel Vadot              const: timer2
88*01950c46SEmmanuel Vadot        then:
89*01950c46SEmmanuel Vadot          properties:
90*01950c46SEmmanuel Vadot            pins:
91*01950c46SEmmanuel Vadot              items:
92*01950c46SEmmanuel Vadot                enum: [PA4, PA5]
93*01950c46SEmmanuel Vadot      - if:
94*01950c46SEmmanuel Vadot          properties:
95*01950c46SEmmanuel Vadot            function:
96*01950c46SEmmanuel Vadot              const: timer5
97*01950c46SEmmanuel Vadot        then:
98*01950c46SEmmanuel Vadot          properties:
99*01950c46SEmmanuel Vadot            pins:
100*01950c46SEmmanuel Vadot              items:
101*01950c46SEmmanuel Vadot                enum: [PA6, PA7, PA8, PA9]
102*01950c46SEmmanuel Vadot      - if:
103*01950c46SEmmanuel Vadot          properties:
104*01950c46SEmmanuel Vadot            function:
105*01950c46SEmmanuel Vadot              const: uart0
106*01950c46SEmmanuel Vadot        then:
107*01950c46SEmmanuel Vadot          properties:
108*01950c46SEmmanuel Vadot            pins:
109*01950c46SEmmanuel Vadot              items:
110*01950c46SEmmanuel Vadot                enum: [PA10, PA11]
111*01950c46SEmmanuel Vadot      - if:
112*01950c46SEmmanuel Vadot          properties:
113*01950c46SEmmanuel Vadot            function:
114*01950c46SEmmanuel Vadot              const: uart1
115*01950c46SEmmanuel Vadot        then:
116*01950c46SEmmanuel Vadot          properties:
117*01950c46SEmmanuel Vadot            pins:
118*01950c46SEmmanuel Vadot              items:
119*01950c46SEmmanuel Vadot                enum: [PA12, PA13]
120*01950c46SEmmanuel Vadot      - if:
121*01950c46SEmmanuel Vadot          properties:
122*01950c46SEmmanuel Vadot            function:
123*01950c46SEmmanuel Vadot              const: can0
124*01950c46SEmmanuel Vadot        then:
125*01950c46SEmmanuel Vadot          properties:
126*01950c46SEmmanuel Vadot            pins:
127*01950c46SEmmanuel Vadot              items:
128*01950c46SEmmanuel Vadot                enum: [PA14, PA15]
129*01950c46SEmmanuel Vadot      - if:
130*01950c46SEmmanuel Vadot          properties:
131*01950c46SEmmanuel Vadot            function:
132*01950c46SEmmanuel Vadot              const: can1
133*01950c46SEmmanuel Vadot        then:
134*01950c46SEmmanuel Vadot          properties:
135*01950c46SEmmanuel Vadot            pins:
136*01950c46SEmmanuel Vadot              items:
137*01950c46SEmmanuel Vadot                enum: [PA16, PA17]
138*01950c46SEmmanuel Vadot      - if:
139*01950c46SEmmanuel Vadot          properties:
140*01950c46SEmmanuel Vadot            function:
141*01950c46SEmmanuel Vadot              const: spi0
142*01950c46SEmmanuel Vadot        then:
143*01950c46SEmmanuel Vadot          properties:
144*01950c46SEmmanuel Vadot            pins:
145*01950c46SEmmanuel Vadot              items:
146*01950c46SEmmanuel Vadot                enum: [PA18, PA19, PA20, PA21, PA22]
147*01950c46SEmmanuel Vadot      - if:
148*01950c46SEmmanuel Vadot          properties:
149*01950c46SEmmanuel Vadot            function:
150*01950c46SEmmanuel Vadot              const: spi1
151*01950c46SEmmanuel Vadot        then:
152*01950c46SEmmanuel Vadot          properties:
153*01950c46SEmmanuel Vadot            pins:
154*01950c46SEmmanuel Vadot              items:
155*01950c46SEmmanuel Vadot                enum: [PA23, PA24, PA25, PA26, PA27]
156*01950c46SEmmanuel Vadot      - if:
157*01950c46SEmmanuel Vadot          properties:
158*01950c46SEmmanuel Vadot            function:
159*01950c46SEmmanuel Vadot              const: refclk0
160*01950c46SEmmanuel Vadot        then:
161*01950c46SEmmanuel Vadot          properties:
162*01950c46SEmmanuel Vadot            pins:
163*01950c46SEmmanuel Vadot              items:
164*01950c46SEmmanuel Vadot                enum: [PA28]
165*01950c46SEmmanuel Vadot      - if:
166*01950c46SEmmanuel Vadot          properties:
167*01950c46SEmmanuel Vadot            function:
168*01950c46SEmmanuel Vadot              const: timer3
169*01950c46SEmmanuel Vadot        then:
170*01950c46SEmmanuel Vadot          properties:
171*01950c46SEmmanuel Vadot            pins:
172*01950c46SEmmanuel Vadot              items:
173*01950c46SEmmanuel Vadot                enum: [PB0, PB1]
174*01950c46SEmmanuel Vadot      - if:
175*01950c46SEmmanuel Vadot          properties:
176*01950c46SEmmanuel Vadot            function:
177*01950c46SEmmanuel Vadot              const: timer4
178*01950c46SEmmanuel Vadot        then:
179*01950c46SEmmanuel Vadot          properties:
180*01950c46SEmmanuel Vadot            pins:
181*01950c46SEmmanuel Vadot              items:
182*01950c46SEmmanuel Vadot                enum: [PB2, PB3]
183*01950c46SEmmanuel Vadot      - if:
184*01950c46SEmmanuel Vadot          properties:
185*01950c46SEmmanuel Vadot            function:
186*01950c46SEmmanuel Vadot              const: timer6
187*01950c46SEmmanuel Vadot        then:
188*01950c46SEmmanuel Vadot          properties:
189*01950c46SEmmanuel Vadot            pins:
190*01950c46SEmmanuel Vadot              items:
191*01950c46SEmmanuel Vadot                enum: [PB4, PB5, PB6, PB7]
192*01950c46SEmmanuel Vadot      - if:
193*01950c46SEmmanuel Vadot          properties:
194*01950c46SEmmanuel Vadot            function:
195*01950c46SEmmanuel Vadot              const: uart2
196*01950c46SEmmanuel Vadot        then:
197*01950c46SEmmanuel Vadot          properties:
198*01950c46SEmmanuel Vadot            pins:
199*01950c46SEmmanuel Vadot              items:
200*01950c46SEmmanuel Vadot                enum: [PB8, PB9]
201*01950c46SEmmanuel Vadot      - if:
202*01950c46SEmmanuel Vadot          properties:
203*01950c46SEmmanuel Vadot            function:
204*01950c46SEmmanuel Vadot              const: can2
205*01950c46SEmmanuel Vadot        then:
206*01950c46SEmmanuel Vadot          properties:
207*01950c46SEmmanuel Vadot            pins:
208*01950c46SEmmanuel Vadot              items:
209*01950c46SEmmanuel Vadot                enum: [PB10, PB11]
210*01950c46SEmmanuel Vadot      - if:
211*01950c46SEmmanuel Vadot          properties:
212*01950c46SEmmanuel Vadot            function:
213*01950c46SEmmanuel Vadot              const: spi2
214*01950c46SEmmanuel Vadot        then:
215*01950c46SEmmanuel Vadot          properties:
216*01950c46SEmmanuel Vadot            pins:
217*01950c46SEmmanuel Vadot              items:
218*01950c46SEmmanuel Vadot                enum: [PB12, PB13, PB14, PB15, PB16]
219*01950c46SEmmanuel Vadot      - if:
220*01950c46SEmmanuel Vadot          properties:
221*01950c46SEmmanuel Vadot            function:
222*01950c46SEmmanuel Vadot              const: spi3
223*01950c46SEmmanuel Vadot        then:
224*01950c46SEmmanuel Vadot          properties:
225*01950c46SEmmanuel Vadot            pins:
226*01950c46SEmmanuel Vadot              items:
227*01950c46SEmmanuel Vadot                enum: [PB17, PB18, PB19, PB20, PB21]
228*01950c46SEmmanuel Vadot      - if:
229*01950c46SEmmanuel Vadot          properties:
230*01950c46SEmmanuel Vadot            function:
231*01950c46SEmmanuel Vadot              const: mclk0
232*01950c46SEmmanuel Vadot        then:
233*01950c46SEmmanuel Vadot          properties:
234*01950c46SEmmanuel Vadot            pins:
235*01950c46SEmmanuel Vadot              items:
236*01950c46SEmmanuel Vadot                enum: [PB22]
237*01950c46SEmmanuel Vadot
238*01950c46SEmmanuel Vadotrequired:
239*01950c46SEmmanuel Vadot  - compatible
240*01950c46SEmmanuel Vadot  - reg
241*01950c46SEmmanuel Vadot
242*01950c46SEmmanuel VadotadditionalProperties: false
243