summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFarouk Bouabid <farouk.bouabid@theobroma-systems.com>2024-02-08 16:39:55 +0100
committerFarouk Bouabid <farouk.bouabid@theobroma-systems.com>2024-02-27 11:48:48 +0100
commitac77a6cc3f0050f6f7bf3362bab4e0ba294627f3 (patch)
treee740356ab1796ded2951ceb3ccc65cb136d9d083
parentef98741509464ed02f3aed81923dcb1b3308d336 (diff)
UPSTREAM: 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> (cherry picked from commit 54448f711aa32f176534bbd7b1903cc6d1c8a50d) (Some baudrates are instable while testing on Puma v2.3. Refer to https://cherrydh.atlassian.net/browse/PUMA-98) Signed-off-by: Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts3
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 5736ffe4ce81..bb434416cfee 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
@@ -280,11 +280,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";
};