mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 06:04:14 +08:00
e0b0baadb7
On sam9x5, dedicated CTS (and RTS) pins are unusable together with the LCDC, the EMAC, or the MMC because they share the same line. Moreover, the USART controller doesn't handle DTR/DSR/DCD/RI signals, so we have to control them via GPIO. This patch permits to use GPIOs to control the CTS/RTS/DTR/DSR/DCD/RI signals. Signed-off-by: Richard Genoud <richard.genoud@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
* Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART)
|
|
|
|
Required properties:
|
|
- compatible: Should be "atmel,<chip>-usart"
|
|
The compatible <chip> indicated will be the first SoC to support an
|
|
additional mode or an USART new feature.
|
|
- 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.
|
|
|
|
Optional properties:
|
|
- 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.
|
|
- add 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.
|
|
Refer to dma.txt and atmel-dma.txt for details.
|
|
- dma-names: "rx" for RX channel, "tx" for TX channel.
|
|
|
|
<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";
|
|
};
|