* [PATCH 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0
@ 2026-07-30 13:18 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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>
---
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 | 27 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 16 +++++++++++++
3 files changed, 47 insertions(+)
---
base-commit: 942a6a4d3a94f24d39dd4dc2664c950972d66c59
change-id: 20260730-jaguar-can-9e36be67dec2
Best regards,
--
Quentin Schulz <quentin.schulz@cherry.de>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0
@ 2026-07-30 13:18 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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>
---
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 | 27 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 16 +++++++++++++
3 files changed, 47 insertions(+)
---
base-commit: 942a6a4d3a94f24d39dd4dc2664c950972d66c59
change-id: 20260730-jaguar-can-9e36be67dec2
Best regards,
--
Quentin Schulz <quentin.schulz@cherry.de>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
2026-07-30 13:18 ` Quentin Schulz
@ 2026-07-30 13:18 ` Quentin Schulz
-1 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
@ 2026-07-30 13:18 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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] 9+ messages in thread
* [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
2026-07-30 13:18 ` Quentin Schulz
@ 2026-07-30 13:18 ` Quentin Schulz
-1 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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 | 27 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 10 ++++++++
3 files changed, 41 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..9dfb81e5d0a0b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso
@@ -0,0 +1,27 @@
+// 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 */
+ max-speed = <250000>;
+ 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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
@ 2026-07-30 13:18 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:18 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 | 27 ++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 10 ++++++++
3 files changed, 41 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..9dfb81e5d0a0b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso
@@ -0,0 +1,27 @@
+// 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 */
+ max-speed = <250000>;
+ 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] 9+ messages in thread
* Re: [PATCH 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
2026-07-30 13:18 ` Quentin Schulz
(?)
@ 2026-07-30 13:34 ` sashiko-bot
-1 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-30 13:34 UTC (permalink / raw)
To: Quentin Schulz; +Cc: devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Missing `pinctrl` pin multiplexing configuration for the CAN0 interface.
- [Low] Undefined device tree label `&can0` causing DTC build failure.
--
--- Patch [1]: [PATCH 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar ---
commit 15a700b1846dc901ddd98173bf7c79852fd78bed
Author: Quentin Schulz <quentin.schulz@cherry.de>
arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar
This commit enables the CAN0 interface on the RK3588 Jaguar, which is
exposed on the P5 connector on the SBC.
> 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 {
> };
> };
>
[Severity: Low]
Does the can0 label exist in the base rk3588.dtsi or its includes? It appears
this might cause a Device Tree Compiler (DTC) build failure if the label is
undefined in the current tree.
[Severity: Medium]
Will this interface require an explicit pinctrl-0 property to correctly route
the CAN signals to the physical pins on the P5 connector? Assuming the can0
node is provided by a prerequisite patch, the CAN interface might fail to
communicate physically if the default pin multiplexing doesn't match this
board's routing.
> +&can0 {
> + assigned-clocks = <&cru CLK_CAN0>;
> + assigned-clock-rates = <300000000>;
> + status = "okay";
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de?part=1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
2026-07-30 13:18 ` Quentin Schulz
(?)
@ 2026-07-30 13:35 ` sashiko-bot
2026-07-30 13:44 ` Quentin Schulz
-1 siblings, 1 reply; 9+ messages in thread
From: sashiko-bot @ 2026-07-30 13:35 UTC (permalink / raw)
To: Quentin Schulz; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The `max-speed` property is incorrectly applied directly to the UART controller node, where it is ignored.
- [Low] Device tree compilation fails due to undefined labels `can0`, `can1`, and `can2`.
--
--- Patch [2]: [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar ---
commit 6be47f689c18a743663d59bd2b78cb3a800f23a2
Author: Quentin Schulz <quentin.schulz@cherry.de>
arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
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.
> 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..9dfb81e5d0a0b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-can1-can2-uart4.dtso
> @@ -0,0 +1,27 @@
[ ... ]
> +
> +&can1 {
> + status = "okay";
> +};
> +
> +&can2 {
> + status = "okay";
> +};
[Severity: Low]
Does this patch depend on another patch series that adds the CAN controller
nodes?
The labels &can1 and &can2 (as well as &can0 in the base file) do not appear
to exist in the upstream rk3588.dtsi base files. Compiling this causes a syntax
error because the referenced labels cannot be found.
> +
> +/* RS232 */
> +&uart4 {
> + /* ST3232B only guarantees 250Kbps */
> + max-speed = <250000>;
> + status = "okay";
> +};
[Severity: Medium]
Is the max-speed property effective when placed directly on the UART
controller node?
According to the device tree bindings (serial-peripheral-props.yaml),
max-speed is meant for serial peripherals (child nodes of the UART).
Standard kernel UART drivers typically do not parse or enforce the
max-speed property on the controller node itself.
Will this actually limit the baud rate, or will it be ignored by the driver?
> 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>;
> +};
[Severity: Low]
Are the &can1 and &can2 labels defined in another pending patch for the
rk3588.dtsi base tree? Without them, attempting to set these assigned-clocks
will result in the same compilation failure mentioned above.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de?part=2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar
2026-07-30 13:35 ` sashiko-bot
@ 2026-07-30 13:44 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:44 UTC (permalink / raw)
To: sashiko-reviews, Quentin Schulz
Cc: robh, conor+dt, devicetree, Heiko Stuebner
On 7/30/26 3:35 PM, sashiko-bot@kernel.org wrote:
[...]
>> +
>> +/* RS232 */
>> +&uart4 {
>> + /* ST3232B only guarantees 250Kbps */
>> + max-speed = <250000>;
>> + status = "okay";
>> +};
>
> [Severity: Medium]
> Is the max-speed property effective when placed directly on the UART
> controller node?
>
> According to the device tree bindings (serial-peripheral-props.yaml),
> max-speed is meant for serial peripherals (child nodes of the UART).
> Standard kernel UART drivers typically do not parse or enforce the
> max-speed property on the controller node itself.
>
> Will this actually limit the baud rate, or will it be ignored by the driver?
>
Forgot to check when porting from downstream. max-speed is seldom used
in Linux kernel and it is indeed specific to devices on UART as does a
quick "git grep max-speed drivers/" tell me. I'll send a v2 with that
property removed but will leave a few days/weeks for comments, there's
no hurry. Sorry for the noise.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-30 13:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-30 13:18 [PATCH 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0 Quentin Schulz
2026-07-30 13:18 ` Quentin Schulz
2026-07-30 13:18 ` [PATCH 1/2] arm64: dts: rockchip: enable CAN0 on RK3588 Jaguar Quentin Schulz
2026-07-30 13:18 ` Quentin Schulz
2026-07-30 13:34 ` sashiko-bot
2026-07-30 13:18 ` [PATCH 2/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for " Quentin Schulz
2026-07-30 13:18 ` Quentin Schulz
2026-07-30 13:35 ` sashiko-bot
2026-07-30 13:44 ` Quentin Schulz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.