Hello Folks,
I’m working with a Radxa Rock 4D (RK3576) and running both Debian 12 (bookworm) and the official Radxa Android 14 image.
I need to use the internal CANFD controller of the RK3576, and I’ve confirmed the following:
-
On Debian: CANFD works perfectly (rk3576_canfd driver loads fine)
-
On Android 14: The CAN driver does not load even though the device-tree includes can0 and can1 nodes
Below are all test results:
CANFD works on Debian 12 (Bookworm)
Kernel messages:
dmesg | grep -i can
Output:
CAN device driver interface
rk3576_canfd 2ac10000.can: CAN info: use_dma = 1, rx_max_data = 18, fifo_depth = 14
can: controller area network core
NET: Registered PF_CAN protocol family
Interface appears normally:
ip -details link show can0
Output:
can0: <NOARP,ECHO> state STOPPED
bitrate 500000 ...
rk3576_canfd ...
So under Debian:
*Driver present
*Interface created
*SocketCAN working
On Android 14: device-tree contains CAN nodes, but driver is missing
I checked the loaded device-tree:
su
dtc -I fs -O dts -o /tmp/loaded.dts /sys/firmware/devicetree/base
grep -R "can@" -n /tmp/loaded.dts
Output:
Binary file /sys/firmware/devicetree/base/__symbols__/can0 matches
Binary file /sys/firmware/devicetree/base/__symbols__/can1 matches
So Android loads the DTB which contains can0 and can1, same as Debian.
But:
ls /sys/bus/platform/devices | grep -i can
NO output (driver not bound)
Kernel log shows no CAN driver either:
logcat -b kernel | grep -i can
No rk3576_canfd, no CAN core initialization.
Checking network interfaces:
ip link show
Result:
lo, wlan0, eth0, dummy0…
(no CAN interfaces)
Checking modules and drivers:
ls /sys/module | grep -i can
ls /sys/bus/platform/drivers | grep -i can
Both empty.
My Assumptions:
The Android 14 DTB includes can0 / can1 nodes ![]()
-
The Android 14 kernel does NOT include the rk3576_canfd driver

-
Under Debian the exact same hardware & DTB loads the driver correctly
This means the Android 14 BSP kernel was compiled without CANFD support, even though the DT describes it.
So the internal CAN controller of RK3576 is not usable on Android 14 at the moment.
My questions for the Radxa Team or the members are:
Is the rk3576_canfd driver supposed to be included in the Android 14 kernel for the Rock 4D?
Or was it intentionally left out?
- Is there an official Android defconfig that enables CAN?
Expected config options include:
CONFIG_CAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_DEV=y
CONFIG_CANFD=y
CONFIG_CAN_RK3576_FD=y (or the corresponding Rockchip name)
-
What is the recommended way to enable internal CAN on Android 14?
-
Rebuild kernel with CAN enabled?
-
Wait for an updated Radxa Android release?
-
Is there a .ko module available for loading manually?
-
Board: Radxa Rock 4D
-
SoC: Rockchip RK3576
-
Android: Radxa Android 14 (AOSP)
-
Debian: Rockchip-based Bookworm — CANFD works fine
I can also upload:
-
Full DTB
-
logs
-
kernel dmesg
if needed.
Thanks in advance — I just need CANFD enabled to continue development.