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