summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFarouk Bouabid <farouk.bouabid@theobroma-systems.com>2024-02-08 18:39:56 +0300
committerHeiko Stuebner <heiko@sntech.de>2024-02-13 22:05:47 +0300
commit5963d97aa780619ffb66cf4886c0ca1175ccbd3e (patch)
treebecb5306fdff82e5c9c6f84601b1a25dc353b03f
parent54448f711aa32f176534bbd7b1903cc6d1c8a50d (diff)
downloadlinux-5963d97aa780619ffb66cf4886c0ca1175ccbd3e.tar.xz
arm64: dts: rockchip: add rs485 support on uart5 of px30-ringneck-haikou
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 GPIO0_B5 which is the RTS signal for uart0. Implement GPIO0_B5 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 GPIO0_B5 and RE is grounded (enabled). Since GPIO0_B5 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-2-39e68e17a339@theobroma-systems.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-rw-r--r--arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
index 16798eb77077..ae398acdcf45 100644
--- a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
@@ -227,6 +227,7 @@
&uart5 {
pinctrl-0 = <&uart5_xfer>;
+ rts-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
status = "okay";
};