[PATCH v4 0/2] Add FD-Only mode support for R-Car CANFD

From: Biju

Date: Wed Nov 26 2025 - 10:59:15 EST


From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>

The RZ/{G2L,G3E} and R-Car Gen4 SoCs support additional CAN FD mode called
FD-only mode. In this mode, communication in Classical CAN frame format is
disabled. Update binding/driver to support this mode.

v3->v4:
* Dropped the node added in example for just testing.
* Dropped the dependencies from covering letter.
v2->v3:
* Added check to disallow the usage of both fd-only and no-can-fd.
v1->v2:
* Added conditional check to disallow fd-only mode for R-Car Gen3 in
bindings.
* Dropped has_fd_only_mode variable from the struct rcar_canfd_hw_info
as it is checked by the dt schema validation.

Logs:
root@smarc-rzg3e:~# /cip-test-scripts/canfd_validation.sh FD-ONLY
[ 13.914196] rcar_canfd 12440000.can: global operational state (canfd clk, fd-only mode)
FD-ONLY
[INFO] Testing can0<->can1 with bitrate 1000000 and dbitrate 4000000
[INFO] Bringing down can0 can1
[INFO] Bringing up can0 can1
[INFO] Testing can1 as producer and can0 as consumer
[INFO] Testing can0 as producer and can1 as consumer
FD-ONLY
[INFO] Testing can0<->can1 with bitrate 500000 and dbitrate 2000000
[INFO] Bringing down can0 can1
[INFO] Bringing up can0 can1
[INFO] Testing can1 as producer and can0 as consumer
[INFO] Testing can0 as producer and can1 as consumer
FD-ONLY
[INFO] Testing can0<->can1 with bitrate 250000 and dbitrate 1000000
[INFO] Bringing down can0 can1
[INFO] Bringing up can0 can1
[INFO] Testing can1 as producer and can0 as consumer
[INFO] Testing can0 as producer and can1 as consumer

EXIT|PASS|canfd_validation.sh|[00:00:19] ||

root@smarc-rzg3e:~# /cip-test-scripts/canfd_validation.sh CANFD
[ 13.914196] rcar_canfd 12440000.can: global operational state (canfd clk, fd-only mode)
CANFD
[INFO] Testing can0<->can1 with bitrate 1000000 and dbitrate 4000000
[INFO] Bringing down can0 can1
[INFO] Bringing up can0 can1
[INFO] Testing can1 as producer and can0 as consumer
[ 37.246104] can: controller area network core
[ 37.250607] NET: Registered PF_CAN protocol family
[ 37.291606] can: raw protocol

EXIT|FAIL|canfd_validation.sh|[00:00:04] Problems while producing data from can1 and consuming from can0||

root@smarc-rzg3e:~# /cip-test-scripts/canfd_validation.sh CAN
[ 13.914196] rcar_canfd 12440000.can: global operational state (canfd clk, fd-only mode)
CAN
[INFO] Testing can0<->can1 with bitrate 1000000
[INFO] Bringing down can0 can1
[INFO] Bringing up can0 can1
[INFO] Testing can1 as producer and can0 as consumer

EXIT|FAIL|canfd_validation.sh|[00:00:03] Problems sending data from can1 to can0||

root@smarc-rzg3e:~#

Biju Das (2):
dt-bindings: can: renesas,rcar-canfd: Document renesas,fd-only
property
can: rcar_canfd: Add support for FD-Only mode

.../bindings/net/can/renesas,rcar-canfd.yaml | 38 +++++++++++++++++--
drivers/net/can/rcar/rcar_canfd.c | 14 ++++++-
2 files changed, 48 insertions(+), 4 deletions(-)

--
2.43.0