diff options
Diffstat (limited to 'Documentation')
4 files changed, 91 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/serial/rs485.txt b/Documentation/devicetree/bindings/serial/rs485.txt new file mode 100644 index 000000000000..1e753c69fc83 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/rs485.txt | |||
@@ -0,0 +1,31 @@ | |||
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 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt b/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt new file mode 100644 index 000000000000..a49d9a1d4ccf --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt | |||
@@ -0,0 +1,27 @@ | |||
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 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt b/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt new file mode 100644 index 000000000000..f13f1c5be91c --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * Synopsys DesignWare ABP UART | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "snps,dw-apb-uart" | ||
5 | - reg : offset and length of the register set for the device. | ||
6 | - interrupts : should contain uart interrupt. | ||
7 | - clock-frequency : the input clock frequency for the UART. | ||
8 | |||
9 | Optional properties: | ||
10 | - reg-shift : quantity to shift the register offsets by. If this property is | ||
11 | not present then the register offsets are not shifted. | ||
12 | - reg-io-width : the size (in bytes) of the IO accesses that should be | ||
13 | performed on the device. If this property is not present then single byte | ||
14 | accesses are used. | ||
15 | |||
16 | Example: | ||
17 | |||
18 | uart@80230000 { | ||
19 | compatible = "snps,dw-apb-uart"; | ||
20 | reg = <0x80230000 0x100>; | ||
21 | clock-frequency = <3686400>; | ||
22 | interrupts = <10>; | ||
23 | reg-shift = <2>; | ||
24 | reg-io-width = <4>; | ||
25 | }; | ||
diff --git a/Documentation/serial/serial-rs485.txt b/Documentation/serial/serial-rs485.txt index a4932387bbfb..079cb3df62cf 100644 --- a/Documentation/serial/serial-rs485.txt +++ b/Documentation/serial/serial-rs485.txt | |||
@@ -28,6 +28,10 @@ | |||
28 | RS485 communications. This data structure is used to set and configure RS485 | 28 | RS485 communications. This data structure is used to set and configure RS485 |
29 | parameters in the platform data and in ioctls. | 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 | Any driver for devices capable of working both as RS232 and RS485 should | 35 | Any driver for devices capable of working both as RS232 and RS485 should |
32 | provide at least the following ioctls: | 36 | provide at least the following ioctls: |
33 | 37 | ||
@@ -104,6 +108,9 @@ | |||
104 | rs485conf.flags |= SER_RS485_RTS_AFTER_SEND; | 108 | rs485conf.flags |= SER_RS485_RTS_AFTER_SEND; |
105 | rs485conf.delay_rts_after_send = ...; | 109 | rs485conf.delay_rts_after_send = ...; |
106 | 110 | ||
111 | /* Set this flag if you want to receive data even whilst sending data */ | ||
112 | rs485conf.flags |= SER_RS485_RX_DURING_TX; | ||
113 | |||
107 | if (ioctl (fd, TIOCSRS485, &rs485conf) < 0) { | 114 | if (ioctl (fd, TIOCSRS485, &rs485conf) < 0) { |
108 | /* Error handling. See errno. */ | 115 | /* Error handling. See errno. */ |
109 | } | 116 | } |
@@ -118,3 +125,4 @@ | |||
118 | 5. REFERENCES | 125 | 5. REFERENCES |
119 | 126 | ||
120 | [1] include/linux/serial.h | 127 | [1] include/linux/serial.h |
128 | [2] Documentation/devicetree/bindings/serial/rs485.txt | ||