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