Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty/serial: RS485 bindings for device tree

Generic bindings for RS485 feature included in some UARTs.
Those bindings have to be used withing an UART device tree node.
Documentation updated to link to the bindings definition.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Nicolas Ferre and committed by
Greg Kroah-Hartman
0331bbf3 631180ac

+63
+31
Documentation/devicetree/bindings/serial/rs485.txt
··· 1 + * RS485 serial communications 2 + 3 + The RTS signal is capable of automatically controlling line direction for 4 + the built-in half-duplex mode. 5 + The properties described hereafter shall be given to a half-duplex capable 6 + UART node. 7 + 8 + Required properties: 9 + - rs485-rts-delay: prop-encoded-array <a b> where: 10 + * a is the delay beteween rts signal and beginning of data sent in milliseconds. 11 + it corresponds to the delay before sending data. 12 + * b is the delay between end of data sent and rts signal in milliseconds 13 + it corresponds to the delay after sending data and actual release of the line. 14 + 15 + Optional properties: 16 + - linux,rs485-enabled-at-boot-time: empty property telling to enable the rs485 17 + feature at boot time. It can be disabled later with proper ioctl. 18 + - rs485-rx-during-tx: empty property that enables the receiving of data even 19 + whilst sending data. 20 + 21 + RS485 example for Atmel USART: 22 + usart0: serial@fff8c000 { 23 + compatible = "atmel,at91sam9260-usart"; 24 + reg = <0xfff8c000 0x4000>; 25 + interrupts = <7>; 26 + atmel,use-dma-rx; 27 + atmel,use-dma-tx; 28 + linux,rs485-enabled-at-boot-time; 29 + rs485-rts-delay = <0 200>; // in milliseconds 30 + }; 31 +
+27
Documentation/devicetree/bindings/tty/serial/atmel-usart.txt
··· 1 + * Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART) 2 + 3 + Required properties: 4 + - compatible: Should be "atmel,<chip>-usart" 5 + The compatible <chip> indicated will be the first SoC to support an 6 + additional mode or an USART new feature. 7 + - reg: Should contain registers location and length 8 + - interrupts: Should contain interrupt 9 + 10 + Optional properties: 11 + - atmel,use-dma-rx: use of PDC or DMA for receiving data 12 + - atmel,use-dma-tx: use of PDC or DMA for transmitting data 13 + 14 + <chip> compatible description: 15 + - at91rm9200: legacy USART support 16 + - at91sam9260: generic USART implementation for SAM9 SoCs 17 + 18 + Example: 19 + 20 + usart0: serial@fff8c000 { 21 + compatible = "atmel,at91sam9260-usart"; 22 + reg = <0xfff8c000 0x4000>; 23 + interrupts = <7>; 24 + atmel,use-dma-rx; 25 + atmel,use-dma-tx; 26 + }; 27 +
+5
Documentation/serial/serial-rs485.txt
··· 28 28 RS485 communications. This data structure is used to set and configure RS485 29 29 parameters in the platform data and in ioctls. 30 30 31 + The device tree can also provide RS485 boot time parameters (see [2] 32 + for bindings). The driver is in charge of filling this data structure from 33 + the values given by the device tree. 34 + 31 35 Any driver for devices capable of working both as RS232 and RS485 should 32 36 provide at least the following ioctls: 33 37 ··· 125 121 5. REFERENCES 126 122 127 123 [1] include/linux/serial.h 124 + [2] Documentation/devicetree/bindings/serial/rs485.txt