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 7title: Serial Interface Generic 8 9maintainers: 10 - Rob Herring <robh@kernel.org> 11 - Greg Kroah-Hartman <gregkh@linuxfoundation.org> 12 13description: 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 22properties: 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 port: 91 $ref: /schemas/graph.yaml#/properties/port 92 93patternProperties: 94 "^(bluetooth|bluetooth-gnss|embedded-controller|gnss|gps|mcu|onewire)$": 95 if: 96 type: object 97 then: 98 additionalProperties: true 99 $ref: serial-peripheral-props.yaml# 100 description: 101 Serial attached devices shall be a child node of the host UART device 102 the slave device is attached to. It is expected that the attached 103 device is the only child node of the UART device. The slave device node 104 name shall reflect the generic type of device for the node. 105 106 properties: 107 compatible: 108 description: 109 Compatible of the device connected to the serial port. 110 111 required: 112 - compatible 113 114if: 115 required: 116 - uart-has-rtscts 117then: 118 properties: 119 cts-gpios: false 120 rts-gpios: false 121 122additionalProperties: true 123 124examples: 125 - | 126 serial@1234 { 127 compatible = "ns16550a"; 128 reg = <0x1234 0x20>; 129 interrupts = <1>; 130 131 bluetooth { 132 compatible = "brcm,bcm4330-bt"; 133 interrupt-parent = <&gpio>; 134 interrupts = <10>; 135 }; 136 }; 137