blob: 8334876cf4e6e1331f854b25d3efb7be10bad5ea [file] [edit]
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/mobileye/mobileye,eyeq6lplus-olb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Mobileye EyeQ6Lplus SoC system controller
maintainers:
- Benoît Monin <benoit.monin@bootlin.com>
- 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. EyeQ6Lplus hosts
a single instance providing 22 clocks, two reset domains and one bank
of 32 pins.
properties:
compatible:
items:
- const: mobileye,eyeq6lplus-olb
- const: syscon
reg:
maxItems: 1
'#reset-cells':
description:
First cell is reset domain index.
Second cell is reset index inside that domain.
const: 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, timer0, timer1, uart_ssi, spi0, uart0, timer2, timer3,
timer_ext0, spi1, timer_ext1, ext_ref_clk, mipi_ref_clk]
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 - PA31
pattern: '^(PA[1,2]?[0-9]|PA3[0,1])$'
- 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: uart_ssi
then:
properties:
pins:
items:
enum: [PA4, PA5]
- if:
properties:
function:
const: spi0
then:
properties:
pins:
items:
enum: [PA6, PA7, PA8, PA9, PA10]
- if:
properties:
function:
const: uart0
then:
properties:
pins:
items:
enum: [PA11, PA12]
- if:
properties:
function:
const: timer2
then:
properties:
pins:
items:
enum: [PA13, PA14]
- if:
properties:
function:
const: timer3
then:
properties:
pins:
items:
enum: [PA15, PA16]
- if:
properties:
function:
const: timer_ext0
then:
properties:
pins:
items:
enum: [PA17, PA18, PA19, PA20]
- if:
properties:
function:
const: spi1
then:
properties:
pins:
items:
enum: [PA21, PA22, PA23, PA24, PA25]
- if:
properties:
function:
const: timer_ext1
then:
properties:
pins:
items:
enum: [PA26, PA27, PA28, PA29]
- if:
properties:
function:
const: ext_ref_clk
then:
properties:
pins:
items:
enum: [PA30]
- if:
properties:
function:
const: mipi_ref_clk
then:
properties:
pins:
items:
enum: [PA31]
required:
- compatible
- reg
- '#clock-cells'
- clocks
- clock-names
- '#reset-cells'
additionalProperties: false
examples:
- |
soc {
#address-cells = <2>;
#size-cells = <2>;
system-controller@e8400000 {
compatible = "mobileye,eyeq6lplus-olb", "syscon";
reg = <0 0xe8400000 0x0 0x80000>;
#reset-cells = <2>;
#clock-cells = <1>;
clocks = <&xtal>;
clock-names = "ref";
};
};