]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
1 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
2 | %YAML 1.2 | |
3 | --- | |
4 | $id: http://devicetree.org/schemas/serial/serial.yaml# | |
5 | $schema: http://devicetree.org/meta-schemas/core.yaml# | |
6 | ||
7 | title: Serial Interface Generic | |
8 | ||
9 | maintainers: | |
10 | - Rob Herring <[email protected]> | |
11 | - Greg Kroah-Hartman <[email protected]> | |
12 | ||
13 | description: | |
14 | This document lists a set of generic properties for describing UARTs in a | |
15 | device tree. Whether these properties apply to a particular device depends | |
16 | on the DT bindings for the actual device. | |
17 | ||
18 | Each enabled UART may have an optional "serialN" alias in the "aliases" node, | |
19 | where N is the port number (non-negative decimal integer) as printed on the | |
20 | label next to the physical port. | |
21 | ||
22 | properties: | |
23 | $nodename: | |
24 | pattern: "^serial(@.*)?$" | |
25 | ||
26 | label: true | |
27 | ||
28 | cts-gpios: | |
29 | maxItems: 1 | |
30 | description: | |
31 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
32 | the UART's CTS line. | |
33 | ||
34 | dcd-gpios: | |
35 | maxItems: 1 | |
36 | description: | |
37 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
38 | the UART's DCD line. | |
39 | ||
40 | dsr-gpios: | |
41 | maxItems: 1 | |
42 | description: | |
43 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
44 | the UART's DSR line. | |
45 | ||
46 | dtr-gpios: | |
47 | maxItems: 1 | |
48 | description: | |
49 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
50 | the UART's DTR line. | |
51 | ||
52 | rng-gpios: | |
53 | maxItems: 1 | |
54 | description: | |
55 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
56 | the UART's RNG line. | |
57 | ||
58 | rts-gpios: | |
59 | maxItems: 1 | |
60 | description: | |
61 | Must contain a GPIO specifier, referring to the GPIO pin to be used as | |
62 | the UART's RTS line. | |
63 | ||
64 | uart-has-rtscts: | |
65 | $ref: /schemas/types.yaml#/definitions/flag | |
66 | description: | |
67 | The presence of this property indicates that the UART has dedicated lines | |
68 | for RTS/CTS hardware flow control, and that they are available for use | |
69 | (wired and enabled by pinmux configuration). This depends on both the | |
70 | UART hardware and the board wiring. | |
71 | ||
72 | rx-tx-swap: | |
73 | type: boolean | |
74 | description: RX and TX pins are swapped. | |
75 | ||
76 | cts-rts-swap: | |
77 | type: boolean | |
78 | description: CTS and RTS pins are swapped. | |
79 | ||
80 | rx-threshold: | |
81 | $ref: /schemas/types.yaml#/definitions/uint32 | |
82 | description: | |
83 | RX FIFO threshold configuration (in bytes). | |
84 | ||
85 | tx-threshold: | |
86 | $ref: /schemas/types.yaml#/definitions/uint32 | |
87 | description: | |
88 | TX FIFO threshold configuration (in bytes). | |
89 | ||
90 | patternProperties: | |
6bb92fcf | 91 | "^(bluetooth|bluetooth-gnss|gnss|gps|mcu|onewire)$": |
53633a89 TR |
92 | if: |
93 | type: object | |
94 | then: | |
95 | description: | |
96 | Serial attached devices shall be a child node of the host UART device | |
97 | the slave device is attached to. It is expected that the attached | |
98 | device is the only child node of the UART device. The slave device node | |
99 | name shall reflect the generic type of device for the node. | |
100 | ||
101 | properties: | |
102 | compatible: | |
103 | description: | |
104 | Compatible of the device connected to the serial port. | |
105 | ||
106 | max-speed: | |
107 | $ref: /schemas/types.yaml#/definitions/uint32 | |
108 | description: | |
109 | The maximum baud rate the device operates at. | |
110 | This should only be present if the maximum is less than the slave | |
111 | device can support. For example, a particular board has some | |
112 | signal quality issue or the host processor can't support higher | |
113 | baud rates. | |
114 | ||
115 | current-speed: | |
116 | $ref: /schemas/types.yaml#/definitions/uint32 | |
117 | description: | | |
118 | The current baud rate the device operates at. | |
119 | This should only be present in case a driver has no chance to know | |
120 | the baud rate of the slave device. | |
121 | Examples: | |
122 | * device supports auto-baud | |
123 | * the rate is setup by a bootloader and there is no way to reset | |
124 | the device | |
125 | * device baud rate is configured by its firmware but there is no | |
126 | way to request the actual settings | |
127 | ||
128 | required: | |
129 | - compatible | |
130 | ||
131 | if: | |
132 | required: | |
133 | - uart-has-rtscts | |
134 | then: | |
135 | properties: | |
136 | cts-gpios: false | |
137 | rts-gpios: false | |
138 | ||
139 | additionalProperties: true | |
140 | ||
141 | examples: | |
142 | - | | |
143 | serial@1234 { | |
144 | compatible = "ns16550a"; | |
145 | reg = <0x1234 0x20>; | |
146 | interrupts = <1>; | |
147 | ||
148 | bluetooth { | |
149 | compatible = "brcm,bcm4330-bt"; | |
150 | interrupt-parent = <&gpio>; | |
151 | interrupts = <10>; | |
152 | }; | |
153 | }; |