xref: /freebsd/sys/contrib/device-tree/Bindings/serial/marvell,armada-3700-uart.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/serial/marvell,armada-3700-uart.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: Marvell Armada-3700 UART
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - Pali Rohár <pali@kernel.org>
11*ae5de77eSEmmanuel Vadot
12*ae5de77eSEmmanuel Vadotdescription:
13*ae5de77eSEmmanuel Vadot  Marvell UART is a non standard UART used in some of Marvell EBU SoCs (e.g.
14*ae5de77eSEmmanuel Vadot  Armada-3700).
15*ae5de77eSEmmanuel Vadot
16*ae5de77eSEmmanuel Vadotproperties:
17*ae5de77eSEmmanuel Vadot  compatible:
18*ae5de77eSEmmanuel Vadot    enum:
19*ae5de77eSEmmanuel Vadot      - marvell,armada-3700-uart
20*ae5de77eSEmmanuel Vadot      - marvell,armada-3700-uart-ext
21*ae5de77eSEmmanuel Vadot
22*ae5de77eSEmmanuel Vadot  reg:
23*ae5de77eSEmmanuel Vadot    maxItems: 1
24*ae5de77eSEmmanuel Vadot
25*ae5de77eSEmmanuel Vadot  clocks:
26*ae5de77eSEmmanuel Vadot    maxItems: 1
27*ae5de77eSEmmanuel Vadot    description:
28*ae5de77eSEmmanuel Vadot      UART reference clock used to derive the baud rate. If absent, only fixed
29*ae5de77eSEmmanuel Vadot      baud rate from the bootloader is supported.
30*ae5de77eSEmmanuel Vadot
31*ae5de77eSEmmanuel Vadot  interrupts:
32*ae5de77eSEmmanuel Vadot    minItems: 2
33*ae5de77eSEmmanuel Vadot    items:
34*ae5de77eSEmmanuel Vadot      - description: UART sum interrupt
35*ae5de77eSEmmanuel Vadot      - description: UART TX interrupt
36*ae5de77eSEmmanuel Vadot      - description: UART RX interrupt
37*ae5de77eSEmmanuel Vadot
38*ae5de77eSEmmanuel Vadot  interrupt-names:
39*ae5de77eSEmmanuel Vadot    minItems: 2
40*ae5de77eSEmmanuel Vadot    maxItems: 3
41*ae5de77eSEmmanuel Vadot
42*ae5de77eSEmmanuel Vadotrequired:
43*ae5de77eSEmmanuel Vadot  - compatible
44*ae5de77eSEmmanuel Vadot  - reg
45*ae5de77eSEmmanuel Vadot  - interrupts
46*ae5de77eSEmmanuel Vadot  - interrupt-names
47*ae5de77eSEmmanuel Vadot
48*ae5de77eSEmmanuel VadotunevaluatedProperties: false
49*ae5de77eSEmmanuel Vadot
50*ae5de77eSEmmanuel VadotallOf:
51*ae5de77eSEmmanuel Vadot  - $ref: /schemas/serial/serial.yaml#
52*ae5de77eSEmmanuel Vadot  - if:
53*ae5de77eSEmmanuel Vadot      properties:
54*ae5de77eSEmmanuel Vadot        compatible:
55*ae5de77eSEmmanuel Vadot          const: marvell,armada-3700-uart-ext
56*ae5de77eSEmmanuel Vadot    then:
57*ae5de77eSEmmanuel Vadot      properties:
58*ae5de77eSEmmanuel Vadot        interrupts:
59*ae5de77eSEmmanuel Vadot          maxItems: 2
60*ae5de77eSEmmanuel Vadot
61*ae5de77eSEmmanuel Vadot        interrupt-names:
62*ae5de77eSEmmanuel Vadot          items:
63*ae5de77eSEmmanuel Vadot            - const: uart-tx
64*ae5de77eSEmmanuel Vadot            - const: uart-rx
65*ae5de77eSEmmanuel Vadot    else:
66*ae5de77eSEmmanuel Vadot      properties:
67*ae5de77eSEmmanuel Vadot        interrupts:
68*ae5de77eSEmmanuel Vadot          minItems: 3
69*ae5de77eSEmmanuel Vadot
70*ae5de77eSEmmanuel Vadot        interrupt-names:
71*ae5de77eSEmmanuel Vadot          items:
72*ae5de77eSEmmanuel Vadot            - const: uart-sum
73*ae5de77eSEmmanuel Vadot            - const: uart-tx
74*ae5de77eSEmmanuel Vadot            - const: uart-rx
75*ae5de77eSEmmanuel Vadot
76*ae5de77eSEmmanuel Vadotexamples:
77*ae5de77eSEmmanuel Vadot  - |
78*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
79*ae5de77eSEmmanuel Vadot
80*ae5de77eSEmmanuel Vadot    serial@12000 {
81*ae5de77eSEmmanuel Vadot        compatible = "marvell,armada-3700-uart";
82*ae5de77eSEmmanuel Vadot        reg = <0x12000 0x18>;
83*ae5de77eSEmmanuel Vadot        clocks = <&uartclk 0>;
84*ae5de77eSEmmanuel Vadot        interrupts =
85*ae5de77eSEmmanuel Vadot            <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
86*ae5de77eSEmmanuel Vadot            <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
87*ae5de77eSEmmanuel Vadot            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
88*ae5de77eSEmmanuel Vadot        interrupt-names = "uart-sum", "uart-tx", "uart-rx";
89*ae5de77eSEmmanuel Vadot    };
90*ae5de77eSEmmanuel Vadot
91*ae5de77eSEmmanuel Vadot  - |
92*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
93*ae5de77eSEmmanuel Vadot
94*ae5de77eSEmmanuel Vadot    serial@12200 {
95*ae5de77eSEmmanuel Vadot        compatible = "marvell,armada-3700-uart-ext";
96*ae5de77eSEmmanuel Vadot        reg = <0x12200 0x30>;
97*ae5de77eSEmmanuel Vadot        clocks = <&uartclk 1>;
98*ae5de77eSEmmanuel Vadot        interrupts =
99*ae5de77eSEmmanuel Vadot            <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
100*ae5de77eSEmmanuel Vadot            <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
101*ae5de77eSEmmanuel Vadot        interrupt-names = "uart-tx", "uart-rx";
102*ae5de77eSEmmanuel Vadot    };
103