* [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0
@ 2026-08-11 14:08 Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar Quentin Schulz
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Quentin Schulz @ 2026-08-11 14:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Cunhao Lu, Marc Kleine-Budde, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, Quentin Schulz
This depends on the RK3588 CAN driver support series:
https://lore.kernel.org/linux-rockchip/tencent_76C8BC251C8C3C068C23BAF859351DD3300A@qq.com/
I send this series early to try to prove that CAN2 also works on RK3588
as Cunhao Lu stated they only tested CAN0<->CAN1 loop. I cannot test
CAN-FD as neither Rk3588 Jaguar nor the Haikou carrierboard for RK3588
Tiger have CAN-FD-able transceivers according to their datasheets.
RK3588 Jaguar exposes three CAN busses. CAN0 on the P5 connector on the
SBC itself. CAN1 and CAN2 via the proprietary Mezzanine connector which
are then exposed via the CAN1-CAN2-UART4 Mezzanine adapter.
Enable the three CAN busses. This was tested with
ip link set canX up type can bitrate 1000000
ip link set canY up type can bitrate 1000000
cansequence canX -p
cansequence canY -r -q -v
with canX being one of the three RK3588 CAN controllers and canY being a
USB-CAN Theobroma Systems Seal device. 200k+ iterations in both
directions without an issue reported by cansequence. I hit the same
issue as reported by Cunaho Lu here:
https://lore.kernel.org/linux-rockchip/tencent_D802EB485A801362BF9F54130C0D990C6206@qq.com/
Namely a bunch of:
rockchip_canfd fea60000.can can0: rkcanfd_tx_tail_is_eff: echo_skb[0]=NULL tx_head=0x00060f7d tx_tail=0x00060f7c
Add support for the CAN1-CAN2-UART4 adapter.
RS232 UART was tested with:
- 1 256-character transfer sent to USB adapter (and checked),
- 1 256-character transfer received from USB adapter (and checked),
done 100 times for each baudrate among 9600, 19200, 38400, 57600, 115200
and 230400.
When the first transfer after a change of baudrate happens in the
direction "to USB", the first (few) characters are missing, when
switching from 57600 to 115200. It doesn't happen when the first
transfer after a change of baudrate happens in the direction "from USB".
I have not investigated this issue, maybe a script issue.
My script is:
for baud in 9600 19200 38400 57600 115200 230400; do
./test-serial.py --baudrate $baud -n 100 -B /dev/ttyS4 /dev/ttyUSB0
done
for baud in 9600 19200 38400 57600 115200 230400; do
./test-serial.py --baudrate $baud -n 100 -B /dev/ttyUSB0 /dev/ttyS4
done
test-serial.py is
https://git.embedded.cherry.de/som-tools.git/tree/testing/serial/test-serial.py
Another way is:
./test-serial.py -n 100 -B --min-baudrate 9600 --max-baudrate 250000 \
-F baudrate /dev/ttyS4 /dev/ttyUSB0
./test-serial.py -n 100 -B --min-baudrate 9600 --max-baudrate 250000 \
-F baudrate /dev/ttyUSB0 /dev/ttyS4
The latter will work just fine, the former will have issues mostly with
baudrates 230400 and 115200.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Changes in v2:
- removed max-speed property from uart4 as that's a UART device property
and nothing would actually make use of it anyway,
- Link to v1: https://patch.msgid.link/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Heiko Stuebner <heiko@sntech.de>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
Quentin Schulz (2):
arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
arch/arm64/boot/dts/rockchip/Makefile | 4 ++++
.../rockchip/rk3588-jaguar-can1-can2-uart4.dtso | 26 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 16 +++++++++++++
3 files changed, 46 insertions(+)
---
base-commit: 942a6a4d3a94f24d39dd4dc2664c950972d66c59
change-id: 20260730-jaguar-can-9e36be67dec2
Best regards,
--
Quentin Schulz <quentin.schulz@cherry.de>
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
2026-08-11 14:08 [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Quentin Schulz
@ 2026-08-11 14:08 ` Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for " Quentin Schulz
2026-09-02 11:11 ` [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Heiko Stuebner
2 siblings, 0 replies; 4+ messages in thread
From: Quentin Schulz @ 2026-08-11 14:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Cunhao Lu, Marc Kleine-Budde, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
RK3588 Jaguar exposes the CAN0 interface on the P5 connector on the SBC.
Enable it.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
index 41758fe7d3689..ed6c1162bd821 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
@@ -195,6 +195,12 @@ vcc5v0_usb: regulator-vcc5v0-usb {
};
};
+&can0 {
+ assigned-clocks = <&cru CLK_CAN0>;
+ assigned-clock-rates = <300000000>;
+ status = "okay";
+};
+
&combphy1_ps {
status = "okay";
};
--
2.55.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
2026-08-11 14:08 [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar Quentin Schulz
@ 2026-08-11 14:08 ` Quentin Schulz
2026-09-02 11:11 ` [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Heiko Stuebner
2 siblings, 0 replies; 4+ messages in thread
From: Quentin Schulz @ 2026-08-11 14:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Cunhao Lu, Marc Kleine-Budde, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
RK3588 Jaguar has a proprietary Mezzanine connector which exposes among
other things CAN1 and CAN2 controllers as well as UART4.
Add support for the CAN1-CAN2-UART4 Mezzanine adapter for RK3588 Jaguar
which exposes two CAN busses (CAN1 and CAN2) and an RS-232 UART, limited
to 250Kbps.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
arch/arm64/boot/dts/rockchip/Makefile | 4 ++++
.../rockchip/rk3588-jaguar-can1-can2-uart4.dtso | 26 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 10 +++++++++
3 files changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 761d82b4f4f2a..11c96e06b122a 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -307,6 +307,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-wifi.dtb
rk3588-edgeble-neu6b-wifi-dtbs := rk3588-edgeble-neu6b-io.dtb \
rk3588-edgeble-neu6a-wifi.dtbo
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-can1-can2-uart4.dtb
+rk3588-jaguar-can1-can2-uart4-dtbs := rk3588-jaguar.dtb \
+ rk3588-jaguar-can1-can2-uart4.dtbo
+
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-ethernet-switch.dtb
rk3588-jaguar-ethernet-switch-dtbs := rk3588-jaguar.dtb \
rk3588-jaguar-ethernet-switch.dtbo
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso
new file mode 100644
index 0000000000000..6c21bf78591b3
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2026 Cherry Embedded Solutions GmbH
+ *
+ * Device Tree Overlay for CAN1-CAN2-UART4 adapter for the Mezzanine connector
+ * on RK3588 Jaguar.
+ *
+ * This adapter has two CAN transceivers and one RS232 transceiver.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&can1 {
+ status = "okay";
+};
+
+&can2 {
+ status = "okay";
+};
+
+/* RS232 */
+&uart4 {
+ /* ST3232B only guarantees 250Kbps */
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
index ed6c1162bd821..0446834e84d5d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
@@ -201,6 +201,16 @@ &can0 {
status = "okay";
};
+&can1 {
+ assigned-clocks = <&cru CLK_CAN1>;
+ assigned-clock-rates = <300000000>;
+};
+
+&can2 {
+ assigned-clocks = <&cru CLK_CAN2>;
+ assigned-clock-rates = <300000000>;
+};
+
&combphy1_ps {
status = "okay";
};
--
2.55.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0
2026-08-11 14:08 [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for " Quentin Schulz
@ 2026-09-02 11:11 ` Heiko Stuebner
2 siblings, 0 replies; 4+ messages in thread
From: Heiko Stuebner @ 2026-09-02 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Quentin Schulz
Cc: Heiko Stuebner, Cunhao Lu, Marc Kleine-Budde, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Quentin Schulz
On Tue, 11 Aug 2026 16:08:25 +0200, Quentin Schulz wrote:
> This depends on the RK3588 CAN driver support series:
> https://lore.kernel.org/linux-rockchip/tencent_76C8BC251C8C3C068C23BAF859351DD3300A@qq.com/
> I send this series early to try to prove that CAN2 also works on RK3588
> as Cunhao Lu stated they only tested CAN0<->CAN1 loop. I cannot test
> CAN-FD as neither Rk3588 Jaguar nor the Haikou carrierboard for RK3588
> Tiger have CAN-FD-able transceivers according to their datasheets.
>
> [...]
Applied, thanks!
[1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
commit: b217437b8f20cbc745d789ea99244274b9dc592f
[2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
commit: 7aa165b62ccaf340da22c517074e7c6853db55cd
Best regards,
--
Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-09-02 11:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-11 14:08 [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar Quentin Schulz
2026-08-11 14:08 ` [PATCH v2 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for " Quentin Schulz
2026-09-02 11:11 ` [PATCH v2 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Heiko Stuebner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox