xref: /linux/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Synopsys DesignWare ABP UART
8
9maintainers:
10  - Rob Herring <robh@kernel.org>
11
12allOf:
13  - $ref: serial.yaml#
14  - $ref: rs485.yaml#
15
16  - if:
17      properties:
18        compatible:
19          items:
20            - {}
21            - const: renesas,rzn1-uart
22            - const: snps,dw-apb-uart
23    then:
24      properties:
25        dmas: false
26        dma-names: false
27
28  - if:
29      properties:
30        compatible:
31          contains:
32            const: starfive,jh7110-uart
33    then:
34      properties:
35        resets:
36          minItems: 2
37    else:
38      properties:
39        resets:
40          maxItems: 1
41
42properties:
43  compatible:
44    oneOf:
45      - items:
46          - const: renesas,r9a06g032-uart
47          - const: renesas,rzn1-uart
48          - const: snps,dw-apb-uart
49      - items:
50          - const: renesas,r9a06g032-uart
51          - const: renesas,rzn1-uart
52      - items:
53          - enum:
54              - anlogic,dr1v90-uart
55              - brcm,bcm11351-dw-apb-uart
56              - brcm,bcm21664-dw-apb-uart
57              - google,lga-uart
58              - rockchip,px30-uart
59              - rockchip,rk1808-uart
60              - rockchip,rk3036-uart
61              - rockchip,rk3066-uart
62              - rockchip,rk3128-uart
63              - rockchip,rk3188-uart
64              - rockchip,rk3288-uart
65              - rockchip,rk3308-uart
66              - rockchip,rk3328-uart
67              - rockchip,rk3368-uart
68              - rockchip,rk3399-uart
69              - rockchip,rk3506-uart
70              - rockchip,rk3528-uart
71              - rockchip,rk3562-uart
72              - rockchip,rk3568-uart
73              - rockchip,rk3576-uart
74              - rockchip,rk3588-uart
75              - rockchip,rv1103b-uart
76              - rockchip,rv1106-uart
77              - rockchip,rv1108-uart
78              - rockchip,rv1126-uart
79              - sophgo,sg2044-uart
80              - starfive,jh7100-hsuart
81              - starfive,jh7100-uart
82              - starfive,jh7110-uart
83              - ultrarisc,dp1000-uart
84          - const: snps,dw-apb-uart
85      - const: snps,dw-apb-uart
86
87  reg:
88    maxItems: 1
89
90  interrupts:
91    maxItems: 1
92
93  clock-frequency: true
94
95  clocks:
96    minItems: 1
97    maxItems: 2
98
99  clock-names:
100    items:
101      - const: baudclk
102      - const: apb_pclk
103
104  dmas:
105    maxItems: 2
106
107  dma-names:
108    items:
109      - const: tx
110      - const: rx
111
112  snps,uart-16550-compatible:
113    description: reflects the value of UART_16550_COMPATIBLE configuration
114      parameter. Define this if your UART does not implement the busy functionality.
115    type: boolean
116
117  power-domains:
118    maxItems: 1
119
120  resets:
121    minItems: 1
122    maxItems: 2
123
124  reg-shift: true
125
126  reg-io-width: true
127
128  dcd-override:
129    description: Override the DCD modem status signal. This signal will
130      always be reported as active instead of being obtained from the modem
131      status register. Define this if your serial port does not use this
132      pin.
133    type: boolean
134
135  dsr-override:
136    description: Override the DTS modem status signal. This signal will
137      always be reported as active instead of being obtained from the modem
138      status register. Define this if your serial port does not use this
139      pin.
140    type: boolean
141
142  cts-override:
143    description: Override the CTS modem status signal. This signal will
144      always be reported as active instead of being obtained from the modem
145      status register. Define this if your serial port does not use this
146      pin.
147    type: boolean
148
149  ri-override:
150    description: Override the RI modem status signal. This signal will always
151      be reported as inactive instead of being obtained from the modem status
152      register. Define this if your serial port does not use this pin.
153    type: boolean
154
155required:
156  - compatible
157  - reg
158
159unevaluatedProperties: false
160
161examples:
162  - |
163    serial@80230000 {
164      compatible = "snps,dw-apb-uart";
165      reg = <0x80230000 0x100>;
166      clock-frequency = <3686400>;
167      interrupts = <10>;
168      reg-shift = <2>;
169      reg-io-width = <4>;
170      dcd-override;
171      dsr-override;
172      cts-override;
173      ri-override;
174    };
175
176  - |
177    // Example with one clock:
178    serial@80230000 {
179      compatible = "snps,dw-apb-uart";
180      reg = <0x80230000 0x100>;
181      clocks = <&baudclk>;
182      interrupts = <10>;
183      reg-shift = <2>;
184      reg-io-width = <4>;
185    };
186
187  - |
188    // Example with two clocks:
189    serial@80230000 {
190      compatible = "snps,dw-apb-uart";
191      reg = <0x80230000 0x100>;
192      clocks = <&baudclk>, <&apb_pclk>;
193      clock-names = "baudclk", "apb_pclk";
194      interrupts = <10>;
195      reg-shift = <2>;
196      reg-io-width = <4>;
197    };
198...
199