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