# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/serial/fsl-imx-uart.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART) maintainers: - Fabio Estevam properties: compatible: oneOf: - const: fsl,imx1-uart - const: fsl,imx21-uart - items: - enum: - fsl,imx25-uart - fsl,imx27-uart - fsl,imx31-uart - fsl,imx35-uart - fsl,imx50-uart - fsl,imx51-uart - fsl,imx53-uart - fsl,imx6q-uart - const: fsl,imx21-uart - items: - enum: - fsl,imx6sl-uart - fsl,imx6sll-uart - fsl,imx6sx-uart - const: fsl,imx6q-uart - const: fsl,imx21-uart - items: - enum: - fsl,imx6ul-uart - fsl,imx7d-uart - fsl,imx8mm-uart - fsl,imx8mn-uart - fsl,imx8mp-uart - fsl,imx8mq-uart - const: fsl,imx6q-uart reg: maxItems: 1 clocks: maxItems: 2 clock-names: items: - const: ipg - const: per dmas: items: - description: DMA controller phandle and request line for RX - description: DMA controller phandle and request line for TX dma-names: items: - const: rx - const: tx interrupts: items: - description: UART RX Interrupt - description: UART TX Interrupt - description: UART RTS Interrupt minItems: 1 wakeup-source: true fsl,dte-mode: $ref: /schemas/types.yaml#/definitions/flag description: | Indicate the uart works in DTE mode. The uart works in DCE mode by default. fsl,inverted-tx: $ref: /schemas/types.yaml#/definitions/flag description: | Indicate that the hardware attached to the peripheral inverts the signal transmitted, and that the peripheral should invert its output using the INVT registers. fsl,inverted-rx: $ref: /schemas/types.yaml#/definitions/flag description: | Indicate that the hardware attached to the peripheral inverts the signal received, and that the peripheral should invert its input using the INVR registers. fsl,dma-info: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 2 maxItems: 2 description: | First cell contains the size of DMA buffer chunks, second cell contains the amount of chunks used for the device. Multiplying both numbers is the total size of memory used for receiving data. When not being configured the system will use default settings, which are sensible for most use cases. If you need low latency processing on slow connections this needs to be configured appropriately. required: - compatible - reg - clocks - clock-names - interrupts allOf: - $ref: serial.yaml# - $ref: rs485.yaml# - if: properties: compatible: contains: const: fsl,imx1-uart then: properties: interrupts: minItems: 3 maxItems: 3 else: properties: interrupts: maxItems: 1 unevaluatedProperties: false examples: - | #include aliases { serial0 = &uart1; }; uart1: serial@73fbc000 { compatible = "fsl,imx51-uart", "fsl,imx21-uart"; reg = <0x73fbc000 0x4000>; interrupts = <31>; clocks = <&clks IMX5_CLK_UART1_IPG_GATE>, <&clks IMX5_CLK_UART1_PER_GATE>; clock-names = "ipg", "per"; dmas = <&sdma 18 4 1>, <&sdma 19 4 2>; dma-names = "rx", "tx"; uart-has-rtscts; fsl,dte-mode; };