diff options
author | Farouk Bouabid <farouk.bouabid@theobroma-systems.com> | 2024-02-08 18:39:55 +0300 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2024-02-13 22:05:47 +0300 |
commit | 54448f711aa32f176534bbd7b1903cc6d1c8a50d (patch) | |
tree | b856454da01cde1bb92ff3e32d92417607e49449 /arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | |
parent | 4b325c0d4f539b553a4529f16476f08757779293 (diff) | |
download | linux-54448f711aa32f176534bbd7b1903cc6d1c8a50d.tar.xz |
arm64: dts: rockchip: add rs485 support on uart2 of rk3399-puma-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 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>
Diffstat (limited to 'arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts')
-rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts index 18a98c4648ea..2c3984a880af 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts @@ -273,11 +273,12 @@ &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"; }; |