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