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,rk3588-uart
37              - rockchip,rv1108-uart
38              - rockchip,rv1126-uart
39          - const: snps,dw-apb-uart
40      - items:
41          - enum:
42              - brcm,bcm11351-dw-apb-uart
43              - brcm,bcm21664-dw-apb-uart
44          - const: snps,dw-apb-uart
45      - items:
46          - enum:
47              - starfive,jh7100-hsuart
48              - starfive,jh7100-uart
49          - const: snps,dw-apb-uart
50      - const: snps,dw-apb-uart
51
52  reg:
53    maxItems: 1
54
55  interrupts:
56    maxItems: 1
57
58  clock-frequency: true
59
60  clocks:
61    minItems: 1
62    maxItems: 2
63
64  clock-names:
65    items:
66      - const: baudclk
67      - const: apb_pclk
68
69  snps,uart-16550-compatible:
70    description: reflects the value of UART_16550_COMPATIBLE configuration
71      parameter. Define this if your UART does not implement the busy functionality.
72    type: boolean
73
74  resets:
75    maxItems: 1
76
77  reg-shift: true
78
79  reg-io-width: true
80
81  dcd-override:
82    description: Override the DCD 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  dsr-override:
89    description: Override the DTS 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  cts-override:
96    description: Override the CTS modem status signal. This signal will
97      always be reported as active instead of being obtained from the modem
98      status register. Define this if your serial port does not use this
99      pin.
100    type: boolean
101
102  ri-override:
103    description: Override the RI modem status signal. This signal will always
104      be reported as inactive instead of being obtained from the modem status
105      register. Define this if your serial port does not use this pin.
106    type: boolean
107
108required:
109  - compatible
110  - reg
111  - interrupts
112
113unevaluatedProperties: false
114
115examples:
116  - |
117    serial@80230000 {
118      compatible = "snps,dw-apb-uart";
119      reg = <0x80230000 0x100>;
120      clock-frequency = <3686400>;
121      interrupts = <10>;
122      reg-shift = <2>;
123      reg-io-width = <4>;
124      dcd-override;
125      dsr-override;
126      cts-override;
127      ri-override;
128    };
129
130  - |
131    // Example with one clock:
132    serial@80230000 {
133      compatible = "snps,dw-apb-uart";
134      reg = <0x80230000 0x100>;
135      clocks = <&baudclk>;
136      interrupts = <10>;
137      reg-shift = <2>;
138      reg-io-width = <4>;
139    };
140
141  - |
142    // Example with two clocks:
143    serial@80230000 {
144      compatible = "snps,dw-apb-uart";
145      reg = <0x80230000 0x100>;
146      clocks = <&baudclk>, <&apb_pclk>;
147      clock-names = "baudclk", "apb_pclk";
148      interrupts = <10>;
149      reg-shift = <2>;
150      reg-io-width = <4>;
151    };
152...
153