353 lines
7.9 KiB
YAML
353 lines
7.9 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/soc/mobileye/mobileye,eyeq5-olb.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Mobileye EyeQ SoC system controller
|
|
|
|
maintainers:
|
|
- Grégory Clement <gregory.clement@bootlin.com>
|
|
- Théo Lebrun <theo.lebrun@bootlin.com>
|
|
- Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
|
|
|
|
description:
|
|
OLB ("Other Logic Block") is a hardware block grouping smaller blocks. Clocks,
|
|
resets, pinctrl are being handled from here. EyeQ5 and EyeQ6L host a single
|
|
instance. EyeQ6H hosts seven instances.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- mobileye,eyeq5-olb
|
|
- mobileye,eyeq6l-olb
|
|
- mobileye,eyeq6h-acc-olb
|
|
- mobileye,eyeq6h-central-olb
|
|
- mobileye,eyeq6h-east-olb
|
|
- mobileye,eyeq6h-west-olb
|
|
- mobileye,eyeq6h-south-olb
|
|
- mobileye,eyeq6h-ddr0-olb
|
|
- mobileye,eyeq6h-ddr1-olb
|
|
- const: syscon
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
'#reset-cells':
|
|
description:
|
|
First cell is domain and optional if compatible has a single reset domain.
|
|
Second cell is reset index inside that domain.
|
|
enum: [ 1, 2 ]
|
|
|
|
'#clock-cells':
|
|
const: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
description:
|
|
Input parent clock to all PLLs. Expected to be the main crystal.
|
|
|
|
clock-names:
|
|
const: ref
|
|
|
|
patternProperties:
|
|
'-pins?$':
|
|
type: object
|
|
description: Pin muxing configuration.
|
|
$ref: /schemas/pinctrl/pinmux-node.yaml#
|
|
additionalProperties: false
|
|
properties:
|
|
pins: true
|
|
function:
|
|
enum: [gpio,
|
|
# Bank A
|
|
timer0, timer1, timer2, timer5, uart0, uart1, can0, can1, spi0,
|
|
spi1, refclk0,
|
|
# Bank B
|
|
timer3, timer4, timer6, uart2, can2, spi2, spi3, mclk0]
|
|
bias-disable: true
|
|
bias-pull-down: true
|
|
bias-pull-up: true
|
|
drive-strength: true
|
|
required:
|
|
- pins
|
|
- function
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: gpio
|
|
then:
|
|
properties:
|
|
pins:
|
|
items: # PA0 - PA28, PB0 - PB22
|
|
pattern: '^(P(A|B)1?[0-9]|PA2[0-8]|PB2[0-2])$'
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA0, PA1]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer1
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA2, PA3]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer2
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA4, PA5]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer5
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA6, PA7, PA8, PA9]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: uart0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA10, PA11]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: uart1
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA12, PA13]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: can0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA14, PA15]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: can1
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA16, PA17]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: spi0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA18, PA19, PA20, PA21, PA22]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: spi1
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA23, PA24, PA25, PA26, PA27]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: refclk0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PA28]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer3
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB0, PB1]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer4
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB2, PB3]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: timer6
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB4, PB5, PB6, PB7]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: uart2
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB8, PB9]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: can2
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB10, PB11]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: spi2
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB12, PB13, PB14, PB15, PB16]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: spi3
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB17, PB18, PB19, PB20, PB21]
|
|
- if:
|
|
properties:
|
|
function:
|
|
const: mclk0
|
|
then:
|
|
properties:
|
|
pins:
|
|
items:
|
|
enum: [PB22]
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- '#clock-cells'
|
|
- clocks
|
|
- clock-names
|
|
|
|
additionalProperties: false
|
|
|
|
allOf:
|
|
# Compatibles exposing a single reset domain.
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- mobileye,eyeq6h-acc-olb
|
|
- mobileye,eyeq6h-east-olb
|
|
- mobileye,eyeq6h-west-olb
|
|
then:
|
|
properties:
|
|
'#reset-cells':
|
|
const: 1
|
|
required:
|
|
- '#reset-cells'
|
|
|
|
# Compatibles exposing two reset domains.
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- mobileye,eyeq5-olb
|
|
- mobileye,eyeq6l-olb
|
|
then:
|
|
properties:
|
|
'#reset-cells':
|
|
const: 2
|
|
required:
|
|
- '#reset-cells'
|
|
|
|
# Compatibles not exposing resets.
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- mobileye,eyeq6h-central-olb
|
|
- mobileye,eyeq6h-south-olb
|
|
- mobileye,eyeq6h-ddr0-olb
|
|
- mobileye,eyeq6h-ddr1-olb
|
|
then:
|
|
properties:
|
|
'#reset-cells': false
|
|
|
|
# Only EyeQ5 has pinctrl in OLB.
|
|
- if:
|
|
not:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: mobileye,eyeq5-olb
|
|
then:
|
|
patternProperties:
|
|
'-pins?$': false
|
|
|
|
examples:
|
|
- |
|
|
soc {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
system-controller@e00000 {
|
|
compatible = "mobileye,eyeq5-olb", "syscon";
|
|
reg = <0 0xe00000 0x0 0x400>;
|
|
#reset-cells = <2>;
|
|
#clock-cells = <1>;
|
|
clocks = <&xtal>;
|
|
clock-names = "ref";
|
|
};
|
|
};
|
|
- |
|
|
soc {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
system-controller@d2003000 {
|
|
compatible = "mobileye,eyeq6h-acc-olb", "syscon";
|
|
reg = <0x0 0xd2003000 0x0 0x1000>;
|
|
#reset-cells = <1>;
|
|
#clock-cells = <1>;
|
|
clocks = <&xtal>;
|
|
clock-names = "ref";
|
|
};
|
|
};
|