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,eyeq5-olb.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Mobileye EyeQ SoC system controller 8 9maintainers: 10 - Grégory Clement <gregory.clement@bootlin.com> 11 - Théo Lebrun <theo.lebrun@bootlin.com> 12 - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> 13 14description: 15 OLB ("Other Logic Block") is a hardware block grouping smaller blocks. Clocks, 16 resets, pinctrl are being handled from here. EyeQ5 and EyeQ6L host a single 17 instance. EyeQ6H hosts seven instances. 18 19properties: 20 compatible: 21 items: 22 - enum: 23 - mobileye,eyeq5-olb 24 - mobileye,eyeq6l-olb 25 - mobileye,eyeq6h-acc-olb 26 - mobileye,eyeq6h-central-olb 27 - mobileye,eyeq6h-east-olb 28 - mobileye,eyeq6h-west-olb 29 - mobileye,eyeq6h-south-olb 30 - mobileye,eyeq6h-ddr0-olb 31 - mobileye,eyeq6h-ddr1-olb 32 - const: syscon 33 34 reg: 35 maxItems: 1 36 37 '#reset-cells': 38 description: 39 First cell is domain and optional if compatible has a single reset domain. 40 Second cell is reset index inside that domain. 41 enum: [ 1, 2 ] 42 43 '#clock-cells': 44 description: 45 Cell is clock index. Optional if compatible has a single clock. 46 enum: [ 0, 1 ] 47 48 clocks: 49 maxItems: 1 50 description: 51 Input parent clock to all PLLs. Expected to be the main crystal. 52 53 clock-names: 54 const: ref 55 56patternProperties: 57 '-pins?$': 58 type: object 59 description: Pin muxing configuration. 60 $ref: /schemas/pinctrl/pinmux-node.yaml# 61 additionalProperties: false 62 properties: 63 pins: true 64 function: 65 enum: [gpio, 66 # Bank A 67 timer0, timer1, timer2, timer5, uart0, uart1, can0, can1, spi0, 68 spi1, refclk0, 69 # Bank B 70 timer3, timer4, timer6, uart2, can2, spi2, spi3, mclk0] 71 bias-disable: true 72 bias-pull-down: true 73 bias-pull-up: true 74 drive-strength: true 75 required: 76 - pins 77 - function 78 allOf: 79 - if: 80 properties: 81 function: 82 const: gpio 83 then: 84 properties: 85 pins: 86 items: # PA0 - PA28, PB0 - PB22 87 pattern: '^(P(A|B)1?[0-9]|PA2[0-8]|PB2[0-2])$' 88 - if: 89 properties: 90 function: 91 const: timer0 92 then: 93 properties: 94 pins: 95 items: 96 enum: [PA0, PA1] 97 - if: 98 properties: 99 function: 100 const: timer1 101 then: 102 properties: 103 pins: 104 items: 105 enum: [PA2, PA3] 106 - if: 107 properties: 108 function: 109 const: timer2 110 then: 111 properties: 112 pins: 113 items: 114 enum: [PA4, PA5] 115 - if: 116 properties: 117 function: 118 const: timer5 119 then: 120 properties: 121 pins: 122 items: 123 enum: [PA6, PA7, PA8, PA9] 124 - if: 125 properties: 126 function: 127 const: uart0 128 then: 129 properties: 130 pins: 131 items: 132 enum: [PA10, PA11] 133 - if: 134 properties: 135 function: 136 const: uart1 137 then: 138 properties: 139 pins: 140 items: 141 enum: [PA12, PA13] 142 - if: 143 properties: 144 function: 145 const: can0 146 then: 147 properties: 148 pins: 149 items: 150 enum: [PA14, PA15] 151 - if: 152 properties: 153 function: 154 const: can1 155 then: 156 properties: 157 pins: 158 items: 159 enum: [PA16, PA17] 160 - if: 161 properties: 162 function: 163 const: spi0 164 then: 165 properties: 166 pins: 167 items: 168 enum: [PA18, PA19, PA20, PA21, PA22] 169 - if: 170 properties: 171 function: 172 const: spi1 173 then: 174 properties: 175 pins: 176 items: 177 enum: [PA23, PA24, PA25, PA26, PA27] 178 - if: 179 properties: 180 function: 181 const: refclk0 182 then: 183 properties: 184 pins: 185 items: 186 enum: [PA28] 187 - if: 188 properties: 189 function: 190 const: timer3 191 then: 192 properties: 193 pins: 194 items: 195 enum: [PB0, PB1] 196 - if: 197 properties: 198 function: 199 const: timer4 200 then: 201 properties: 202 pins: 203 items: 204 enum: [PB2, PB3] 205 - if: 206 properties: 207 function: 208 const: timer6 209 then: 210 properties: 211 pins: 212 items: 213 enum: [PB4, PB5, PB6, PB7] 214 - if: 215 properties: 216 function: 217 const: uart2 218 then: 219 properties: 220 pins: 221 items: 222 enum: [PB8, PB9] 223 - if: 224 properties: 225 function: 226 const: can2 227 then: 228 properties: 229 pins: 230 items: 231 enum: [PB10, PB11] 232 - if: 233 properties: 234 function: 235 const: spi2 236 then: 237 properties: 238 pins: 239 items: 240 enum: [PB12, PB13, PB14, PB15, PB16] 241 - if: 242 properties: 243 function: 244 const: spi3 245 then: 246 properties: 247 pins: 248 items: 249 enum: [PB17, PB18, PB19, PB20, PB21] 250 - if: 251 properties: 252 function: 253 const: mclk0 254 then: 255 properties: 256 pins: 257 items: 258 enum: [PB22] 259 260required: 261 - compatible 262 - reg 263 - '#clock-cells' 264 - clocks 265 - clock-names 266 267additionalProperties: false 268 269allOf: 270 # Compatibles exposing a single reset domain. 271 - if: 272 properties: 273 compatible: 274 contains: 275 enum: 276 - mobileye,eyeq6h-acc-olb 277 - mobileye,eyeq6h-east-olb 278 - mobileye,eyeq6h-west-olb 279 then: 280 properties: 281 '#reset-cells': 282 const: 1 283 required: 284 - '#reset-cells' 285 286 # Compatibles exposing two reset domains. 287 - if: 288 properties: 289 compatible: 290 contains: 291 enum: 292 - mobileye,eyeq5-olb 293 - mobileye,eyeq6l-olb 294 then: 295 properties: 296 '#reset-cells': 297 const: 2 298 required: 299 - '#reset-cells' 300 301 # Compatibles not exposing resets. 302 - if: 303 properties: 304 compatible: 305 contains: 306 enum: 307 - mobileye,eyeq6h-central-olb 308 - mobileye,eyeq6h-south-olb 309 - mobileye,eyeq6h-ddr0-olb 310 - mobileye,eyeq6h-ddr1-olb 311 then: 312 properties: 313 '#reset-cells': false 314 315 # Compatibles exposing a single clock. 316 - if: 317 properties: 318 compatible: 319 contains: 320 enum: 321 - mobileye,eyeq6h-central-olb 322 - mobileye,eyeq6h-east-olb 323 - mobileye,eyeq6h-west-olb 324 - mobileye,eyeq6h-ddr0-olb 325 - mobileye,eyeq6h-ddr1-olb 326 then: 327 properties: 328 '#clock-cells': 329 const: 0 330 else: 331 properties: 332 '#clock-cells': 333 const: 1 334 335 # Only EyeQ5 has pinctrl in OLB. 336 - if: 337 not: 338 properties: 339 compatible: 340 contains: 341 const: mobileye,eyeq5-olb 342 then: 343 patternProperties: 344 '-pins?$': false 345 346examples: 347 - | 348 soc { 349 #address-cells = <2>; 350 #size-cells = <2>; 351 352 system-controller@e00000 { 353 compatible = "mobileye,eyeq5-olb", "syscon"; 354 reg = <0 0xe00000 0x0 0x400>; 355 #reset-cells = <2>; 356 #clock-cells = <1>; 357 clocks = <&xtal>; 358 clock-names = "ref"; 359 }; 360 }; 361 - | 362 soc { 363 #address-cells = <2>; 364 #size-cells = <2>; 365 366 system-controller@d2003000 { 367 compatible = "mobileye,eyeq6h-acc-olb", "syscon"; 368 reg = <0x0 0xd2003000 0x0 0x1000>; 369 #reset-cells = <1>; 370 #clock-cells = <1>; 371 clocks = <&xtal>; 372 clock-names = "ref"; 373 }; 374 }; 375