xref: /freebsd/sys/contrib/device-tree/Bindings/serial/mediatek,uart.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/serial/mediatek,uart.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: MediaTek Universal Asynchronous Receiver/Transmitter (UART)
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Matthias Brugger <matthias.bgg@gmail.com>
11b97ee269SEmmanuel Vadot
12b97ee269SEmmanuel VadotallOf:
13b97ee269SEmmanuel Vadot  - $ref: serial.yaml#
14b97ee269SEmmanuel Vadot
15b97ee269SEmmanuel Vadotdescription: |
16b97ee269SEmmanuel Vadot  The MediaTek UART is based on the basic 8250 UART and compatible
17b97ee269SEmmanuel Vadot  with 16550A, with enhancements for high speed baud rates and
18b97ee269SEmmanuel Vadot  support for DMA.
19b97ee269SEmmanuel Vadot
20b97ee269SEmmanuel Vadotproperties:
21b97ee269SEmmanuel Vadot  compatible:
22b97ee269SEmmanuel Vadot    oneOf:
23b97ee269SEmmanuel Vadot      - const: mediatek,mt6577-uart
24b97ee269SEmmanuel Vadot      - items:
25b97ee269SEmmanuel Vadot          - enum:
26b97ee269SEmmanuel Vadot              - mediatek,mt2701-uart
27b97ee269SEmmanuel Vadot              - mediatek,mt2712-uart
28b97ee269SEmmanuel Vadot              - mediatek,mt6580-uart
29b97ee269SEmmanuel Vadot              - mediatek,mt6582-uart
30b97ee269SEmmanuel Vadot              - mediatek,mt6589-uart
31b97ee269SEmmanuel Vadot              - mediatek,mt6755-uart
32b97ee269SEmmanuel Vadot              - mediatek,mt6765-uart
33b97ee269SEmmanuel Vadot              - mediatek,mt6779-uart
34b97ee269SEmmanuel Vadot              - mediatek,mt6795-uart
35b97ee269SEmmanuel Vadot              - mediatek,mt6797-uart
36b97ee269SEmmanuel Vadot              - mediatek,mt7622-uart
37b97ee269SEmmanuel Vadot              - mediatek,mt7623-uart
38b97ee269SEmmanuel Vadot              - mediatek,mt7629-uart
39*b2d2a78aSEmmanuel Vadot              - mediatek,mt7981-uart
40b97ee269SEmmanuel Vadot              - mediatek,mt7986-uart
410e8011faSEmmanuel Vadot              - mediatek,mt7988-uart
42b97ee269SEmmanuel Vadot              - mediatek,mt8127-uart
43b97ee269SEmmanuel Vadot              - mediatek,mt8135-uart
44b97ee269SEmmanuel Vadot              - mediatek,mt8173-uart
45b97ee269SEmmanuel Vadot              - mediatek,mt8183-uart
46b97ee269SEmmanuel Vadot              - mediatek,mt8186-uart
477ef62cebSEmmanuel Vadot              - mediatek,mt8188-uart
48b97ee269SEmmanuel Vadot              - mediatek,mt8192-uart
49b97ee269SEmmanuel Vadot              - mediatek,mt8195-uart
50fac71e4eSEmmanuel Vadot              - mediatek,mt8365-uart
51b97ee269SEmmanuel Vadot              - mediatek,mt8516-uart
52b97ee269SEmmanuel Vadot          - const: mediatek,mt6577-uart
53b97ee269SEmmanuel Vadot
54b97ee269SEmmanuel Vadot  reg:
55b97ee269SEmmanuel Vadot    description: The base address of the UART register bank
56b97ee269SEmmanuel Vadot    maxItems: 1
57b97ee269SEmmanuel Vadot
58b97ee269SEmmanuel Vadot  clocks:
59b97ee269SEmmanuel Vadot    minItems: 1
60b97ee269SEmmanuel Vadot    items:
61b97ee269SEmmanuel Vadot      - description: The clock the baudrate is derived from
62b97ee269SEmmanuel Vadot      - description: The bus clock for register accesses
63b97ee269SEmmanuel Vadot
64b97ee269SEmmanuel Vadot  clock-names:
65b97ee269SEmmanuel Vadot    minItems: 1
66b97ee269SEmmanuel Vadot    items:
67b97ee269SEmmanuel Vadot      - const: baud
68b97ee269SEmmanuel Vadot      - const: bus
69b97ee269SEmmanuel Vadot
70b97ee269SEmmanuel Vadot  dmas:
71b97ee269SEmmanuel Vadot    items:
72b97ee269SEmmanuel Vadot      - description: phandle to TX DMA
73b97ee269SEmmanuel Vadot      - description: phandle to RX DMA
74b97ee269SEmmanuel Vadot
75b97ee269SEmmanuel Vadot  dma-names:
76b97ee269SEmmanuel Vadot    items:
77b97ee269SEmmanuel Vadot      - const: tx
78b97ee269SEmmanuel Vadot      - const: rx
79b97ee269SEmmanuel Vadot
80b97ee269SEmmanuel Vadot  interrupts:
81b97ee269SEmmanuel Vadot    minItems: 1
82b97ee269SEmmanuel Vadot    maxItems: 2
83b97ee269SEmmanuel Vadot
84b97ee269SEmmanuel Vadot  interrupt-names:
85b97ee269SEmmanuel Vadot    description:
86b97ee269SEmmanuel Vadot      The UART interrupt and optionally the RX in-band wakeup interrupt.
87b97ee269SEmmanuel Vadot    minItems: 1
88b97ee269SEmmanuel Vadot    items:
89b97ee269SEmmanuel Vadot      - const: uart
90b97ee269SEmmanuel Vadot      - const: wakeup
91b97ee269SEmmanuel Vadot
92b97ee269SEmmanuel Vadot  pinctrl-0: true
93b97ee269SEmmanuel Vadot  pinctrl-1: true
94b97ee269SEmmanuel Vadot
95b97ee269SEmmanuel Vadot  pinctrl-names:
96b97ee269SEmmanuel Vadot    minItems: 1
97b97ee269SEmmanuel Vadot    items:
98b97ee269SEmmanuel Vadot      - const: default
99b97ee269SEmmanuel Vadot      - const: sleep
100b97ee269SEmmanuel Vadot
101b97ee269SEmmanuel Vadotrequired:
102b97ee269SEmmanuel Vadot  - compatible
103b97ee269SEmmanuel Vadot  - reg
104b97ee269SEmmanuel Vadot  - clocks
105b97ee269SEmmanuel Vadot  - interrupts
106b97ee269SEmmanuel Vadot
107b97ee269SEmmanuel VadotunevaluatedProperties: false
108b97ee269SEmmanuel Vadot
109b97ee269SEmmanuel Vadotexamples:
110b97ee269SEmmanuel Vadot  - |
111b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
112b97ee269SEmmanuel Vadot
113b97ee269SEmmanuel Vadot    serial@11006000 {
114b97ee269SEmmanuel Vadot        compatible = "mediatek,mt6589-uart", "mediatek,mt6577-uart";
115b97ee269SEmmanuel Vadot        reg = <0x11006000 0x400>;
116b97ee269SEmmanuel Vadot        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
117b97ee269SEmmanuel Vadot                     <GIC_SPI 52 IRQ_TYPE_EDGE_FALLING>;
118b97ee269SEmmanuel Vadot        interrupt-names = "uart", "wakeup";
119b97ee269SEmmanuel Vadot        clocks = <&uart_clk>, <&bus_clk>;
120b97ee269SEmmanuel Vadot        clock-names = "baud", "bus";
121b97ee269SEmmanuel Vadot        pinctrl-0 = <&uart_pin>;
122b97ee269SEmmanuel Vadot        pinctrl-1 = <&uart_pin_sleep>;
123b97ee269SEmmanuel Vadot        pinctrl-names = "default", "sleep";
124b97ee269SEmmanuel Vadot    };
125