xref: /freebsd/sys/contrib/device-tree/Bindings/serial/snps-dw-apb-uart.yaml (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
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
16properties:
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
118required:
119  - compatible
120  - reg
121
122unevaluatedProperties: false
123
124examples:
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...
162