[PATCH 0/2] arm64: dts: rockchip: support CAN1-CAN2-UART4 adapter for RK3588 Jaguar + enable CAN0
Quentin Schulz <[email protected]> Thu, 30 Jul 2026 15:18:26 +0200
| Newsgroups | org.infradead.lists.linux-rockchip,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
This depends on the RK3588 CAN driver support series: https://lore.kernel.org/linux-rockchip/[email protected]/ 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/[email protected]/ 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 <[email protected]> --- 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 <[email protected]> _______________________________________________ Linux-rockchip mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-rockchip