# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/serial/serial.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Serial Interface Generic maintainers: - Rob Herring <robh@kernel.org> - Greg Kroah-Hartman <gregkh@linuxfoundation.org> description: This document lists a set of generic properties for describing UARTs in a device tree. Whether these properties apply to a particular device depends on the DT bindings for the actual device. Each enabled UART may have an optional "serialN" alias in the "aliases" node, where N is the port number (non-negative decimal integer) as printed on the label next to the physical port. properties: $nodename: pattern: "^serial(@.*)?$" label: true cts-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's CTS line. dcd-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's DCD line. dsr-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's DSR line. dtr-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's DTR line. rng-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's RNG line. rts-gpios: maxItems: 1 description: Must contain a GPIO specifier, referring to the GPIO pin to be used as the UART's RTS line. uart-has-rtscts: $ref: /schemas/types.yaml#/definitions/flag description: The presence of this property indicates that the UART has dedicated lines for RTS/CTS hardware flow control, and that they are available for use (wired and enabled by pinmux configuration). This depends on both the UART hardware and the board wiring. rx-tx-swap: type: boolean description: RX and TX pins are swapped. cts-rts-swap: type: boolean description: CTS and RTS pins are swapped. rx-threshold: $ref: /schemas/types.yaml#/definitions/uint32 description: RX FIFO threshold configuration (in bytes). tx-threshold: $ref: /schemas/types.yaml#/definitions/uint32 description: TX FIFO threshold configuration (in bytes). if: required: - uart-has-rtscts then: properties: cts-gpios: false rts-gpios: false patternProperties: "^bluetooth|gnss|gps|mcu$": if: type: object then: description: Serial attached devices shall be a child node of the host UART device the slave device is attached to. It is expected that the attached device is the only child node of the UART device. The slave device node name shall reflect the generic type of device for the node. properties: compatible: description: Compatible of the device connected to the serial port. max-speed: $ref: /schemas/types.yaml#/definitions/uint32 description: The maximum baud rate the device operates at. This should only be present if the maximum is less than the slave device can support. For example, a particular board has some signal quality issue or the host processor can't support higher baud rates. current-speed: $ref: /schemas/types.yaml#/definitions/uint32 description: | The current baud rate the device operates at. This should only be present in case a driver has no chance to know the baud rate of the slave device. Examples: * device supports auto-baud * the rate is setup by a bootloader and there is no way to reset the device * device baud rate is configured by its firmware but there is no way to request the actual settings required: - compatible additionalProperties: true examples: - | serial@1234 { compatible = "ns16550a"; reg = <0x1234 0x20>; interrupts = <1>; bluetooth { compatible = "brcm,bcm4330-bt"; interrupt-parent = <&gpio>; interrupts = <10>; }; };