xref: /freebsd/sys/contrib/device-tree/Bindings/serial/brcm,bcm7271-uart.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom 8250 based serial port
8
9maintainers:
10  - Al Cooper <alcooperx@gmail.com>
11
12allOf:
13  - $ref: serial.yaml#
14
15description: |+
16  The Broadcom UART is based on the basic 8250 UART but with
17  enhancements for more accurate high speed baud rates and support
18  for DMA.
19
20properties:
21  compatible:
22    items:
23      - enum:
24          - brcm,bcm7271-uart
25          - brcm,bcm7278-uart
26
27  reg:
28    minItems: 1
29    maxItems: 5
30
31  reg-names:
32    description: The UART register block and optionally the DMA register blocks.
33    oneOf:
34      - items:
35          - const: uart
36      - items:
37          - const: uart
38          - const: dma_arb
39          - const: dma_rx
40          - const: dma_tx
41          - const: dma_intr2
42
43  clocks:
44    minItems: 1
45
46  clock-names:
47    const: sw_baud
48
49  interrupts:
50    minItems: 1
51    maxItems: 2
52
53  interrupt-names:
54    description: The UART interrupt and optionally the DMA interrupt.
55    minItems: 1
56    items:
57      - const: uart
58      - const: dma
59
60required:
61  - compatible
62  - reg
63  - reg-names
64  - clocks
65  - clock-names
66  - interrupts
67  - interrupt-names
68
69unevaluatedProperties: false
70
71examples:
72  - |
73    serial@840d000 {
74        compatible = "brcm,bcm7271-uart";
75        reg = <0x840d000 0x20>;
76        reg-names = "uart";
77        interrupts = <0x0 0x62 0x4>;
78        interrupt-names = "uart";
79        clocks = <&scmi_clk 190>;
80        clock-names = "sw_baud";
81    };
82
83    serial@840e000 {
84        compatible = "brcm,bcm7271-uart";
85        reg = <0x840e000 0x20>,
86              <0x840e080 0x8>,
87              <0x840e100 0xa8>,
88              <0x840e200 0x4c>,
89              <0x840e300 0x30>;
90        reg-names = "uart", "dma_arb", "dma_rx", "dma_tx", "dma_intr2";
91        interrupts = <0x0 0x62 0x4>, <0x0 0x75 0x4>;
92        interrupt-names = "uart", "dma";
93        clocks = <&scmi_clk 190>;
94        clock-names = "sw_baud";
95    };
96