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