arm64: dts: rockchip: add rs485 support on uart2 of rk3399-puma-haikou
authorFarouk Bouabid <farouk.bouabid@theobroma-systems.com>
Thu, 8 Feb 2024 15:39:55 +0000 (16:39 +0100)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 13 Feb 2024 19:05:47 +0000 (20:05 +0100)
A hardware switch can set the rs485 transceiver into half or full duplex
mode.

Switching to the half-duplex mode requires the user to enable em485 on
uart5 using ioctl, DE/RE are both connected to GPIO2_C3 which is the
RTS signal for uart0. Implement GPIO2_C3 as rts-gpios with RTS_ON_SEND
option enabled (default) so that driver mode gets enabled while sending
(RTS high) and receiver mode gets enabled while not sending (RTS low).

In full-duplex mode (em485 is disabled), DE is connected to GPIO2_C3 and
RE is grounded (enabled). Since GPIO2_C3 is implemented as rts-gpios, the
driver mode gets enabled whenever we want to send something and RE is not
affected (always enabled) in this case by the state of RTS.

Signed-off-by: Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
Link: https://lore.kernel.org/r/20240208-dev-rx-enable-v6-1-39e68e17a339@theobroma-systems.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts

index 18a98c4648eae78cf927a848f9ba8e4f0b4cfdc5..2c3984a880af64ceaf3f7ec1a09ceee02f0dffeb 100644 (file)
 
 &uart0 {
        pinctrl-names = "default";
-       pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+       pinctrl-0 = <&uart0_xfer>;
        status = "okay";
 };
 
 &uart2 {
+       rts-gpios = <&gpio2 RK_PC3 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };