xref: /linux/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml (revision 53597deca0e38c30e6cd4ba2114fa42d2bcd85bb)
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              - rockchip,px30-uart
58              - rockchip,rk1808-uart
59              - rockchip,rk3036-uart
60              - rockchip,rk3066-uart
61              - rockchip,rk3128-uart
62              - rockchip,rk3188-uart
63              - rockchip,rk3288-uart
64              - rockchip,rk3308-uart
65              - rockchip,rk3328-uart
66              - rockchip,rk3368-uart
67              - rockchip,rk3399-uart
68              - rockchip,rk3506-uart
69              - rockchip,rk3528-uart
70              - rockchip,rk3562-uart
71              - rockchip,rk3568-uart
72              - rockchip,rk3576-uart
73              - rockchip,rk3588-uart
74              - rockchip,rv1103b-uart
75              - rockchip,rv1108-uart
76              - rockchip,rv1126-uart
77              - sophgo,sg2044-uart
78              - starfive,jh7100-hsuart
79              - starfive,jh7100-uart
80              - starfive,jh7110-uart
81          - const: snps,dw-apb-uart
82      - const: snps,dw-apb-uart
83
84  reg:
85    maxItems: 1
86
87  interrupts:
88    maxItems: 1
89
90  clock-frequency: true
91
92  clocks:
93    minItems: 1
94    maxItems: 2
95
96  clock-names:
97    items:
98      - const: baudclk
99      - const: apb_pclk
100
101  dmas:
102    maxItems: 2
103
104  dma-names:
105    items:
106      - const: tx
107      - const: rx
108
109  snps,uart-16550-compatible:
110    description: reflects the value of UART_16550_COMPATIBLE configuration
111      parameter. Define this if your UART does not implement the busy functionality.
112    type: boolean
113
114  power-domains:
115    maxItems: 1
116
117  resets:
118    minItems: 1
119    maxItems: 2
120
121  reg-shift: true
122
123  reg-io-width: true
124
125  dcd-override:
126    description: Override the DCD modem status signal. This signal will
127      always be reported as active instead of being obtained from the modem
128      status register. Define this if your serial port does not use this
129      pin.
130    type: boolean
131
132  dsr-override:
133    description: Override the DTS modem status signal. This signal will
134      always be reported as active instead of being obtained from the modem
135      status register. Define this if your serial port does not use this
136      pin.
137    type: boolean
138
139  cts-override:
140    description: Override the CTS modem status signal. This signal will
141      always be reported as active instead of being obtained from the modem
142      status register. Define this if your serial port does not use this
143      pin.
144    type: boolean
145
146  ri-override:
147    description: Override the RI modem status signal. This signal will always
148      be reported as inactive instead of being obtained from the modem status
149      register. Define this if your serial port does not use this pin.
150    type: boolean
151
152required:
153  - compatible
154  - reg
155
156unevaluatedProperties: false
157
158examples:
159  - |
160    serial@80230000 {
161      compatible = "snps,dw-apb-uart";
162      reg = <0x80230000 0x100>;
163      clock-frequency = <3686400>;
164      interrupts = <10>;
165      reg-shift = <2>;
166      reg-io-width = <4>;
167      dcd-override;
168      dsr-override;
169      cts-override;
170      ri-override;
171    };
172
173  - |
174    // Example with one clock:
175    serial@80230000 {
176      compatible = "snps,dw-apb-uart";
177      reg = <0x80230000 0x100>;
178      clocks = <&baudclk>;
179      interrupts = <10>;
180      reg-shift = <2>;
181      reg-io-width = <4>;
182    };
183
184  - |
185    // Example with two clocks:
186    serial@80230000 {
187      compatible = "snps,dw-apb-uart";
188      reg = <0x80230000 0x100>;
189      clocks = <&baudclk>, <&apb_pclk>;
190      clock-names = "baudclk", "apb_pclk";
191      interrupts = <10>;
192      reg-shift = <2>;
193      reg-io-width = <4>;
194    };
195...
196