| * Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART) |
| |
| Required properties for USART: |
| - compatible: Should be one of the following: |
| - "atmel,at91rm9200-usart" |
| - "atmel,at91sam9260-usart" |
| - "microchip,sam9x60-usart" |
| - "atmel,at91rm9200-dbgu", "atmel,at91rm9200-usart" |
| - "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart" |
| - "microchip,sam9x60-dbgu", "microchip,sam9x60-usart" |
| - reg: Should contain registers location and length |
| - interrupts: Should contain interrupt |
| - clock-names: tuple listing input clock names. |
| Required elements: "usart" |
| - clocks: phandles to input clocks. |
| |
| Required properties for USART in SPI mode: |
| - #size-cells : Must be <0> |
| - #address-cells : Must be <1> |
| - cs-gpios: chipselects (internal cs not supported) |
| - atmel,usart-mode : Must be <AT91_USART_MODE_SPI> (found in dt-bindings/mfd/at91-usart.h) |
| |
| Optional properties in serial and SPI mode: |
| - dma bindings for dma transfer: |
| - dmas: DMA specifier, consisting of a phandle to DMA controller node, |
| memory peripheral interface and USART DMA channel ID, FIFO configuration. |
| The order of DMA channels is fixed. The first DMA channel must be TX |
| associated channel and the second one must be RX associated channel. |
| Refer to dma.txt and atmel-dma.txt for details. |
| - dma-names: "tx" for TX channel. |
| "rx" for RX channel. |
| The order of dma-names is also fixed. The first name must be "tx" |
| and the second one must be "rx" as in the examples below. |
| |
| Optional properties in serial mode: |
| - atmel,use-dma-rx: use of PDC or DMA for receiving data |
| - atmel,use-dma-tx: use of PDC or DMA for transmitting data |
| - {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD line respectively. |
| It will use specified PIO instead of the peripheral function pin for the USART feature. |
| If unsure, don't specify this property. |
| - atmel,fifo-size: maximum number of data the RX and TX FIFOs can store for FIFO |
| capable USARTs. |
| - rs485-rts-delay, rs485-rx-during-tx, linux,rs485-enabled-at-boot-time: see rs485.txt |
| |
| <chip> compatible description: |
| - at91rm9200: legacy USART support |
| - at91sam9260: generic USART implementation for SAM9 SoCs |
| |
| Example: |
| - use PDC: |
| usart0: serial@fff8c000 { |
| compatible = "atmel,at91sam9260-usart"; |
| reg = <0xfff8c000 0x4000>; |
| interrupts = <7>; |
| clocks = <&usart0_clk>; |
| clock-names = "usart"; |
| atmel,use-dma-rx; |
| atmel,use-dma-tx; |
| rts-gpios = <&pioD 15 GPIO_ACTIVE_LOW>; |
| cts-gpios = <&pioD 16 GPIO_ACTIVE_LOW>; |
| dtr-gpios = <&pioD 17 GPIO_ACTIVE_LOW>; |
| dsr-gpios = <&pioD 18 GPIO_ACTIVE_LOW>; |
| dcd-gpios = <&pioD 20 GPIO_ACTIVE_LOW>; |
| rng-gpios = <&pioD 19 GPIO_ACTIVE_LOW>; |
| }; |
| |
| - use DMA: |
| usart0: serial@f001c000 { |
| compatible = "atmel,at91sam9260-usart"; |
| reg = <0xf001c000 0x100>; |
| interrupts = <12 4 5>; |
| clocks = <&usart0_clk>; |
| clock-names = "usart"; |
| atmel,use-dma-rx; |
| atmel,use-dma-tx; |
| dmas = <&dma0 2 0x3>, |
| <&dma0 2 0x204>; |
| dma-names = "tx", "rx"; |
| atmel,fifo-size = <32>; |
| }; |
| |
| - SPI mode: |
| #include <dt-bindings/mfd/at91-usart.h> |
| |
| spi0: spi@f001c000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "atmel,at91rm9200-usart", "atmel,at91sam9260-usart"; |
| atmel,usart-mode = <AT91_USART_MODE_SPI>; |
| reg = <0xf001c000 0x100>; |
| interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>; |
| clocks = <&usart0_clk>; |
| clock-names = "usart"; |
| dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3)>, |
| <&dma0 2 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>; |
| dma-names = "tx", "rx"; |
| cs-gpios = <&pioB 3 0>; |
| }; |