Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / serial / snps-dw-apb-uart.yaml
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
7 title: Synopsys DesignWare ABP UART
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 allOf:
13   - $ref: serial.yaml#
14   - $ref: rs485.yaml#
15
16 properties:
17   compatible:
18     oneOf:
19       - items:
20           - enum:
21               - renesas,r9a06g032-uart
22               - renesas,r9a06g033-uart
23           - const: renesas,rzn1-uart
24       - items:
25           - enum:
26               - rockchip,px30-uart
27               - rockchip,rk1808-uart
28               - rockchip,rk3036-uart
29               - rockchip,rk3066-uart
30               - rockchip,rk3128-uart
31               - rockchip,rk3188-uart
32               - rockchip,rk3288-uart
33               - rockchip,rk3308-uart
34               - rockchip,rk3328-uart
35               - rockchip,rk3368-uart
36               - rockchip,rk3399-uart
37               - rockchip,rk3568-uart
38               - rockchip,rk3588-uart
39               - rockchip,rv1108-uart
40               - rockchip,rv1126-uart
41           - const: snps,dw-apb-uart
42       - items:
43           - enum:
44               - brcm,bcm11351-dw-apb-uart
45               - brcm,bcm21664-dw-apb-uart
46           - const: snps,dw-apb-uart
47       - items:
48           - enum:
49               - starfive,jh7100-hsuart
50               - starfive,jh7100-uart
51           - const: snps,dw-apb-uart
52       - const: snps,dw-apb-uart
53
54   reg:
55     maxItems: 1
56
57   interrupts:
58     maxItems: 1
59
60   clock-frequency: true
61
62   clocks:
63     minItems: 1
64     maxItems: 2
65
66   clock-names:
67     items:
68       - const: baudclk
69       - const: apb_pclk
70
71   dmas:
72     maxItems: 2
73
74   dma-names:
75     items:
76       - const: tx
77       - const: rx
78
79   snps,uart-16550-compatible:
80     description: reflects the value of UART_16550_COMPATIBLE configuration
81       parameter. Define this if your UART does not implement the busy functionality.
82     type: boolean
83
84   resets:
85     maxItems: 1
86
87   reg-shift: true
88
89   reg-io-width: true
90
91   dcd-override:
92     description: Override the DCD modem status signal. This signal will
93       always be reported as active instead of being obtained from the modem
94       status register. Define this if your serial port does not use this
95       pin.
96     type: boolean
97
98   dsr-override:
99     description: Override the DTS modem status signal. This signal will
100       always be reported as active instead of being obtained from the modem
101       status register. Define this if your serial port does not use this
102       pin.
103     type: boolean
104
105   cts-override:
106     description: Override the CTS modem status signal. This signal will
107       always be reported as active instead of being obtained from the modem
108       status register. Define this if your serial port does not use this
109       pin.
110     type: boolean
111
112   ri-override:
113     description: Override the RI modem status signal. This signal will always
114       be reported as inactive instead of being obtained from the modem status
115       register. Define this if your serial port does not use this pin.
116     type: boolean
117
118 required:
119   - compatible
120   - reg
121
122 unevaluatedProperties: false
123
124 examples:
125   - |
126     serial@80230000 {
127       compatible = "snps,dw-apb-uart";
128       reg = <0x80230000 0x100>;
129       clock-frequency = <3686400>;
130       interrupts = <10>;
131       reg-shift = <2>;
132       reg-io-width = <4>;
133       dcd-override;
134       dsr-override;
135       cts-override;
136       ri-override;
137     };
138
139   - |
140     // Example with one clock:
141     serial@80230000 {
142       compatible = "snps,dw-apb-uart";
143       reg = <0x80230000 0x100>;
144       clocks = <&baudclk>;
145       interrupts = <10>;
146       reg-shift = <2>;
147       reg-io-width = <4>;
148     };
149
150   - |
151     // Example with two clocks:
152     serial@80230000 {
153       compatible = "snps,dw-apb-uart";
154       reg = <0x80230000 0x100>;
155       clocks = <&baudclk>, <&apb_pclk>;
156       clock-names = "baudclk", "apb_pclk";
157       interrupts = <10>;
158       reg-shift = <2>;
159       reg-io-width = <4>;
160     };
161 ...