Devicetree
 help / color / mirror / Atom feed
* [PATCH v5 1/4] dt-bindings: can: rockchip: add rk3588 CAN-FD compatible
       [not found] <20260725-master-v5-0-75da459d2b93@qq.com>
@ 2026-07-25  7:03 ` Cunhao Lu
  2026-07-25  7:03 ` [PATCH v5 2/4] can: rockchip: add RK3588 CAN support Cunhao Lu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Cunhao Lu @ 2026-07-25  7:03 UTC (permalink / raw)
  To: Marc Kleine-Budde, kernel, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Cunhao Lu, Krzysztof Kozlowski

RK3588 integrates a Rockchip CAN-FD controller variant that is not
fully compatible with RK3568v2. The RX FIFO count register field is
encoded in bits 7:5 on RK3588, while RK3568v2 uses bits 6:4.

Add a dedicated rockchip,rk3588-canfd compatible to describe this
variant. Do not use rockchip,rk3568v2-canfd as a fallback, because that
would describe a register layout that does not match the hardware.

Signed-off-by: Cunhao Lu <1579567540@qq.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
v3 -> v4:
- Collect Krzysztof's Acked-by tag.
v2 -> v3:
- Move the Changelog below ---
- Collect Heiko's Reviewed-by tag
v1 -> v2:
- Use enum for the single-compatible entries, as suggested by Krzysztof.
- Reword the commit message to explain the hardware difference instead
  of referring to Linux driver match data.
---
 .../devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml          | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml b/Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml
index a077c0330013..81e2b6dfeb02 100644
--- a/Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml
+++ b/Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml
@@ -16,7 +16,9 @@ allOf:
 properties:
   compatible:
     oneOf:
-      - const: rockchip,rk3568v2-canfd
+      - enum:
+          - rockchip,rk3568v2-canfd
+          - rockchip,rk3588-canfd
       - items:
           - const: rockchip,rk3568v3-canfd
           - const: rockchip,rk3568v2-canfd

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 2/4] can: rockchip: add RK3588 CAN support
       [not found] <20260725-master-v5-0-75da459d2b93@qq.com>
  2026-07-25  7:03 ` [PATCH v5 1/4] dt-bindings: can: rockchip: add rk3588 CAN-FD compatible Cunhao Lu
@ 2026-07-25  7:03 ` Cunhao Lu
  2026-07-25  7:03 ` [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588 Cunhao Lu
  2026-07-25  7:03 ` [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou Cunhao Lu
  3 siblings, 0 replies; 9+ messages in thread
From: Cunhao Lu @ 2026-07-25  7:03 UTC (permalink / raw)
  To: Marc Kleine-Budde, kernel, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Cunhao Lu, Heiko Stuebner

Add support for the RK3588 CAN controller by introducing a dedicated
model ID and OF match entry.

The block is closely related to the existing RK3568 variants, but it
cannot reuse their match data unchanged. In particular, RK3588
encodes RX_FIFO_CNT in bits 7:5 instead of 6:4, so the RX path needs
SoC-specific handling.

The RX FIFO count bitfield difference was found by comparing Rockchip's
vendor kernel 6.1 CAN support for RK3568 and RK3588. Runtime testing on
RK3588 also confirms that bits 7:5 are needed.

Enable the existing erratum 5 empty-FIFO workaround for RK3588.
Heiko reproduced erratum 6 on RK3588, so enable that workaround as
well.

CAN-FD is enabled for RK3588. The BRS bus-off issue seen in earlier
testing was caused by the transmit delay compensation setting. With
RKCANFD_REG_TRANSMIT_DELAY_COMPENSATION programmed to 0 on RK3588,
CAN-FD with BRS works in local testing.

Tested on an embedfire,rk3588-lubancat-5io board with can0/can1
directly connected, no other device on the bus, 60 Ohm bus
termination, and a 300 MHz CAN clock. Runtime testing used 500 kbit/s
arbitration bitrate and 1, 3 and 5 Mbit/s data bitrates. The 5 Mbit/s
data phase test ran for 15 minutes with cangen using BRS and
cansequence on the receiver. Both interfaces reported 9528377 packets
and 150667356 bytes, with 0 bus-errors, 0 error-warn, 0 error-pass and
0 bus-off events.

Co-developed-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Signed-off-by: Cunhao Lu <1579567540@qq.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
---
v3 -> v4:
- Disable TDC on RK3588 by programming
  RKCANFD_REG_TRANSMIT_DELAY_COMPENSATION to 0.
- Drop RKCANFD_QUIRK_CANFD_BROKEN for RK3588 and enable CAN-FD support.
- Document successful RK3588 CAN-FD/BRS testing.
v2 -> v3:
- Use Co-developed-by for Heiko's RK3588 contributions and add his
  Signed-off-by
- Collect Heiko's Reviewed-by and Tested-by tags
---
 drivers/net/can/rockchip/rockchip_canfd-core.c | 17 +++++++++++++++++
 drivers/net/can/rockchip/rockchip_canfd-rx.c   |  5 ++++-
 drivers/net/can/rockchip/rockchip_canfd.h      | 14 +++++++++++++-
 3 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/drivers/net/can/rockchip/rockchip_canfd-core.c b/drivers/net/can/rockchip/rockchip_canfd-core.c
index 29de0c01e4ed..37c1c22c40c9 100644
--- a/drivers/net/can/rockchip/rockchip_canfd-core.c
+++ b/drivers/net/can/rockchip/rockchip_canfd-core.c
@@ -50,6 +50,12 @@ static const struct rkcanfd_devtype_data rkcanfd_devtype_data_rk3568v3 = {
 		RKCANFD_QUIRK_CANFD_BROKEN,
 };
 
+static const struct rkcanfd_devtype_data rkcanfd_devtype_data_rk3588 = {
+	.model = RKCANFD_MODEL_RK3588,
+	.quirks = RKCANFD_QUIRK_RK3568_ERRATUM_5 |
+		RKCANFD_QUIRK_RK3568_ERRATUM_6,
+};
+
 static const char *__rkcanfd_get_model_str(enum rkcanfd_model model)
 {
 	switch (model) {
@@ -57,6 +63,8 @@ static const char *__rkcanfd_get_model_str(enum rkcanfd_model model)
 		return "rk3568v2";
 	case RKCANFD_MODEL_RK3568V3:
 		return "rk3568v3";
+	case RKCANFD_MODEL_RK3588:
+		return "rk3588";
 	}
 
 	return "<unknown>";
@@ -148,6 +156,12 @@ static int rkcanfd_set_bittiming(struct rkcanfd_priv *priv)
 
 	rkcanfd_write(priv, RKCANFD_REG_FD_DATA_BITTIMING, reg_dbt);
 
+	/* RK3588 CAN-FD BRS works with TDC disabled. */
+	if (priv->devtype_data.model == RKCANFD_MODEL_RK3588) {
+		rkcanfd_write(priv, RKCANFD_REG_TRANSMIT_DELAY_COMPENSATION, 0);
+		return 0;
+	}
+
 	tdco = (priv->can.clock.freq / dbt->bitrate) * 2 / 3;
 	tdco = min(tdco, FIELD_MAX(RKCANFD_REG_TRANSMIT_DELAY_COMPENSATION_TDC_OFFSET));
 
@@ -846,6 +860,9 @@ static const struct of_device_id rkcanfd_of_match[] = {
 	}, {
 		.compatible = "rockchip,rk3568v3-canfd",
 		.data = &rkcanfd_devtype_data_rk3568v3,
+	}, {
+		.compatible = "rockchip,rk3588-canfd",
+		.data = &rkcanfd_devtype_data_rk3588,
 	}, {
 		/* sentinel */
 	},
diff --git a/drivers/net/can/rockchip/rockchip_canfd-rx.c b/drivers/net/can/rockchip/rockchip_canfd-rx.c
index 475c0409e215..24e87daa1df0 100644
--- a/drivers/net/can/rockchip/rockchip_canfd-rx.c
+++ b/drivers/net/can/rockchip/rockchip_canfd-rx.c
@@ -281,7 +281,10 @@ rkcanfd_rx_fifo_get_len(const struct rkcanfd_priv *priv)
 {
 	const u32 reg = rkcanfd_read(priv, RKCANFD_REG_RX_FIFO_CTRL);
 
-	return FIELD_GET(RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT, reg);
+	if (priv->devtype_data.model == RKCANFD_MODEL_RK3588)
+		return FIELD_GET(RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT_RK3588, reg);
+
+	return FIELD_GET(RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT_RK3568, reg);
 }
 
 int rkcanfd_handle_rx_int(struct rkcanfd_priv *priv)
diff --git a/drivers/net/can/rockchip/rockchip_canfd.h b/drivers/net/can/rockchip/rockchip_canfd.h
index 93131c7d7f54..95bea9bfd8a2 100644
--- a/drivers/net/can/rockchip/rockchip_canfd.h
+++ b/drivers/net/can/rockchip/rockchip_canfd.h
@@ -214,7 +214,8 @@
 #define RKCANFD_REG_TXEVENT_FIFO_CTRL_TXE_FIFO_ENABLE BIT(0)
 
 #define RKCANFD_REG_RX_FIFO_CTRL 0x118
-#define RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT GENMASK(6, 4)
+#define RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT_RK3568 GENMASK(6, 4)
+#define RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_CNT_RK3588 GENMASK(7, 5)
 #define RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_FULL_WATERMARK GENMASK(3, 1)
 #define RKCANFD_REG_RX_FIFO_CTRL_RX_FIFO_ENABLE BIT(0)
 
@@ -331,6 +332,11 @@
  * rarely with the standard clock of 300 MHz, but almost immediately
  * at 80 MHz.
  *
+ * Tests on the rk3588 show the same empty FIFO condition.
+ * In that setup rx_fifo_empty_errors increments when the bus
+ * transitions from idle to high CAN-FD load and stops growing once
+ * the bus reaches a steady state.
+ *
  * To workaround this problem, check for empty FIFO with
  * rkcanfd_fifo_header_empty() in rkcanfd_handle_rx_int_one() and exit
  * early.
@@ -344,6 +350,8 @@
 /* Erratum 6: The CAN controller's transmission of extended frames may
  * intermittently change into standard frames
  *
+ * Tests on the rk3588 show the same problem.
+ *
  * Work around this issue by activating self reception (RXSTX). If we
  * have pending TX CAN frames, check all RX'ed CAN frames in
  * rkcanfd_rxstx_filter().
@@ -424,6 +432,9 @@
  *     cansequence -rv -i 1
  *
  * - TX starvation after repeated Bus-Off
+ *   Tests on the rk3588 show the same problem. In a
+ *   10-cycle Bus-Off recovery test, 9 cycles failed to send after the
+ *   controller restarted.
  *   To reproduce:
  *   host:
  *     sleep 3 && cangen can0 -I2 -Li -Di -p10 -g 0.0
@@ -434,6 +445,7 @@
 enum rkcanfd_model {
 	RKCANFD_MODEL_RK3568V2 = 0x35682,
 	RKCANFD_MODEL_RK3568V3 = 0x35683,
+	RKCANFD_MODEL_RK3588 = 0x3588,
 };
 
 struct rkcanfd_devtype_data {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588
       [not found] <20260725-master-v5-0-75da459d2b93@qq.com>
  2026-07-25  7:03 ` [PATCH v5 1/4] dt-bindings: can: rockchip: add rk3588 CAN-FD compatible Cunhao Lu
  2026-07-25  7:03 ` [PATCH v5 2/4] can: rockchip: add RK3588 CAN support Cunhao Lu
@ 2026-07-25  7:03 ` Cunhao Lu
  2026-07-30 13:22   ` Quentin Schulz
  2026-07-25  7:03 ` [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou Cunhao Lu
  3 siblings, 1 reply; 9+ messages in thread
From: Cunhao Lu @ 2026-07-25  7:03 UTC (permalink / raw)
  To: Marc Kleine-Budde, kernel, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Cunhao Lu, Heiko Stuebner, Quentin Schulz

Describe the three CAN-FD controllers integrated in RK3588 in the base
SoC .dtsi.

Add CAN0, CAN1 and CAN2 nodes with their register ranges, interrupts,
clocks and resets, and keep them disabled by default so board DTS files
can enable them as needed.

Co-developed-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Signed-off-by: Cunhao Lu <1579567540@qq.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
---
v4 -> v5:
- Collect Quentin's Reviewed-by tag
v2 -> v3:
- Use Co-developed-by for Heiko's RK3588 contributions and add his
  Signed-off-by
---
 arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 39 +++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
index fc1fdbfd3162..b340973775c5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
@@ -2648,6 +2648,45 @@ dmac1: dma-controller@fea30000 {
 		#dma-cells = <1>;
 	};
 
+	can0: can@fea50000 {
+		compatible = "rockchip,rk3588-canfd";
+		reg = <0x0 0xfea50000 0x0 0x1000>;
+		interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 0>;
+		clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
+		clock-names = "baud", "pclk";
+		resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
+		reset-names = "core", "apb";
+		pinctrl-names = "default";
+		pinctrl-0 = <&can0m0_pins>;
+		status = "disabled";
+	};
+
+	can1: can@fea60000 {
+		compatible = "rockchip,rk3588-canfd";
+		reg = <0x0 0xfea60000 0x0 0x1000>;
+		interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 0>;
+		clocks = <&cru CLK_CAN1>, <&cru PCLK_CAN1>;
+		clock-names = "baud", "pclk";
+		resets = <&cru SRST_CAN1>, <&cru SRST_P_CAN1>;
+		reset-names = "core", "apb";
+		pinctrl-names = "default";
+		pinctrl-0 = <&can1m0_pins>;
+		status = "disabled";
+	};
+
+	can2: can@fea70000 {
+		compatible = "rockchip,rk3588-canfd";
+		reg = <0x0 0xfea70000 0x0 0x1000>;
+		interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 0>;
+		clocks = <&cru CLK_CAN2>, <&cru PCLK_CAN2>;
+		clock-names = "baud", "pclk";
+		resets = <&cru SRST_CAN2>, <&cru SRST_P_CAN2>;
+		reset-names = "core", "apb";
+		pinctrl-names = "default";
+		pinctrl-0 = <&can2m0_pins>;
+		status = "disabled";
+	};
+
 	i2c1: i2c@fea90000 {
 		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
 		reg = <0x0 0xfea90000 0x0 0x1000>;

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou
       [not found] <20260725-master-v5-0-75da459d2b93@qq.com>
                   ` (2 preceding siblings ...)
  2026-07-25  7:03 ` [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588 Cunhao Lu
@ 2026-07-25  7:03 ` Cunhao Lu
  2026-07-30 13:31   ` Quentin Schulz
  3 siblings, 1 reply; 9+ messages in thread
From: Cunhao Lu @ 2026-07-25  7:03 UTC (permalink / raw)
  To: Marc Kleine-Budde, kernel, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Cunhao Lu, Heiko Stuebner

From: Heiko Stuebner <heiko.stuebner@cherry.de>

CAN0 is piped through the Q7-connector to the CAN-Header on the Haikou
base-board, so enable support for it there.

At least on RK3588-Tiger, the CAN clocks default to 99MHz, limiting
usable CAN bitrates without skew. Errata documentation mentions
300MHz as the default frequency on RK3568, so replicate this here
to allow more bitrates.

Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Signed-off-by: Cunhao Lu <1579567540@qq.com>
---
 arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
index 873fbeb8daa1..6273e695b039 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
@@ -155,6 +155,12 @@ vddd_audio_1v6: regulator-vddd-audio-1v6 {
 	};
 };
 
+&can0 {
+	assigned-clocks = <&cru CLK_CAN0>;
+	assigned-clock-rates = <300000000>;
+	status = "okay";
+};
+
 &combphy2_psu {
 	status = "okay";
 };

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588
  2026-07-25  7:03 ` [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588 Cunhao Lu
@ 2026-07-30 13:22   ` Quentin Schulz
  2026-07-30 14:03     ` Cunhao Lu
  0 siblings, 1 reply; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:22 UTC (permalink / raw)
  To: Cunhao Lu, Marc Kleine-Budde, kernel, Vincent Mailhol,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Heiko Stuebner

Hi Cunhao Lu,

On 7/25/26 9:03 AM, Cunhao Lu wrote:
> Describe the three CAN-FD controllers integrated in RK3588 in the base
> SoC .dtsi.
> 
> Add CAN0, CAN1 and CAN2 nodes with their register ranges, interrupts,
> clocks and resets, and keep them disabled by default so board DTS files
> can enable them as needed.
> 
> Co-developed-by: Heiko Stuebner <heiko.stuebner@cherry.de>
> Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
> Signed-off-by: Cunhao Lu <1579567540@qq.com>
> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Jaguar

where we have all three CAN controllers accessible (two via an adapter 
board). See 
https://lore.kernel.org/linux-rockchip/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de/ 
for more info and the test setup.

Thanks!
Quentin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou
  2026-07-25  7:03 ` [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou Cunhao Lu
@ 2026-07-30 13:31   ` Quentin Schulz
  2026-07-30 14:04     ` Cunhao Lu
  0 siblings, 1 reply; 9+ messages in thread
From: Quentin Schulz @ 2026-07-30 13:31 UTC (permalink / raw)
  To: Cunhao Lu, Marc Kleine-Budde, kernel, Vincent Mailhol,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Heiko Stuebner

Hi Cunhao Lu,

On 7/25/26 9:03 AM, Cunhao Lu wrote:
> From: Heiko Stuebner <heiko.stuebner@cherry.de>
> 
> CAN0 is piped through the Q7-connector to the CAN-Header on the Haikou
> base-board, so enable support for it there.
> 
> At least on RK3588-Tiger, the CAN clocks default to 99MHz, limiting
> usable CAN bitrates without skew. Errata documentation mentions
> 300MHz as the default frequency on RK3568, so replicate this here
> to allow more bitrates.
> 

Can you please move the assigned-clocks* properties to rk3588-tiger.dtsi 
instead? RK3588 Tiger is a SOM and Haikou is a carrierboard. The 
carrierboard takes the signal directly from the SoC and route those to a 
transceiver. I'm assuming all carrierboards for Tiger will need those 
two properties, so better have them in the SoM DTSI.

Just apply:

"""
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts 
b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
index 6273e695b0394..6c57c9f54a305 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
@@ -156,8 +156,6 @@ vddd_audio_1v6: regulator-vddd-audio-1v6 {
  };

  &can0 {
-	assigned-clocks = <&cru CLK_CAN0>;
-	assigned-clock-rates = <300000000>;
  	status = "okay";
  };

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
index 139f70e7bbd90..161c89c62bcda 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
@@ -90,6 +90,11 @@ vcc5v0_sys: regulator-vcc5v0-sys {
  	};
  };

+&can0 {
+	assigned-clocks = <&cru CLK_CAN0>;
+	assigned-clock-rates = <300000000>;
+};
+
  &cpu_b0 {
  	cpu-supply = <&vdd_cpu_big0_s0>;
  };
"""

on top of this patch and squash and we'll have what I would like to have.

If there's no need for a v6, I'm assuming Heiko can simply fix that when 
applying and thus there may be no need to send a v6 just for that (but 
if you need to send a v6, please consider doing the suggested changes 
above).

Thanks!
Quentin

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588
  2026-07-30 13:22   ` Quentin Schulz
@ 2026-07-30 14:03     ` Cunhao Lu
  2026-07-30 14:13       ` Marc Kleine-Budde
  0 siblings, 1 reply; 9+ messages in thread
From: Cunhao Lu @ 2026-07-30 14:03 UTC (permalink / raw)
  To: Quentin Schulz, Marc Kleine-Budde, kernel, Vincent Mailhol,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Heiko Stuebner

Hi Quentin,

> Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Jaguar
>
> where we have all three CAN controllers accessible (two via an adapter
> board). See
> https://lore.kernel.org/linux-rockchip/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de/
> for more info and the test setup.

Thank you for testing all three CAN controllers on the RK3588 Jaguar.

I will add your Tested-by tag to patch 3. I am preparing v6 now and will
post it shortly with this update included.

Thanks,
Cunhao

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou
  2026-07-30 13:31   ` Quentin Schulz
@ 2026-07-30 14:04     ` Cunhao Lu
  0 siblings, 0 replies; 9+ messages in thread
From: Cunhao Lu @ 2026-07-30 14:04 UTC (permalink / raw)
  To: Quentin Schulz, Marc Kleine-Budde, kernel, Vincent Mailhol,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: linux-can, devicetree, linux-arm-kernel, linux-rockchip,
	linux-kernel, Heiko Stuebner

Hi Quentin,

> Can you please move the assigned-clocks* properties to rk3588-tiger.dtsi
> instead? RK3588 Tiger is a SOM and Haikou is a carrierboard. The
> carrierboard takes the signal directly from the SoC and route those to a
> transceiver. I'm assuming all carrierboards for Tiger will need those
> two properties, so better have them in the SoM DTSI.
>
> on top of this patch and squash and we'll have what I would like to have.
>
> If there's no need for a v6, I'm assuming Heiko can simply fix that when
> applying and thus there may be no need to send a v6 just for that (but
> if you need to send a v6, please consider doing the suggested changes
> above).

I will move the assigned-clocks and assigned-clock-rates properties to
rk3588-tiger.dtsi. I am preparing v6 now and will post it
shortly with these changes.

Thanks,
Cunhao

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588
  2026-07-30 14:03     ` Cunhao Lu
@ 2026-07-30 14:13       ` Marc Kleine-Budde
  0 siblings, 0 replies; 9+ messages in thread
From: Marc Kleine-Budde @ 2026-07-30 14:13 UTC (permalink / raw)
  To: Cunhao Lu
  Cc: Quentin Schulz, kernel, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner, linux-can,
	devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
	Heiko Stuebner

[-- Attachment #1: Type: text/plain, Size: 872 bytes --]

On 30.07.2026 22:03:15, Cunhao Lu wrote:
> Hi Quentin,
>
> > Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Jaguar
> >
> > where we have all three CAN controllers accessible (two via an adapter
> > board). See
> > https://lore.kernel.org/linux-rockchip/20260730-jaguar-can-v1-0-9b566bd785da@cherry.de/
> > for more info and the test setup.
>
> Thank you for testing all three CAN controllers on the RK3588 Jaguar.
>
> I will add your Tested-by tag to patch 3. I am preparing v6 now and will
> post it shortly with this update included.

Please put your S-o-b last.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-07-30 14:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260725-master-v5-0-75da459d2b93@qq.com>
2026-07-25  7:03 ` [PATCH v5 1/4] dt-bindings: can: rockchip: add rk3588 CAN-FD compatible Cunhao Lu
2026-07-25  7:03 ` [PATCH v5 2/4] can: rockchip: add RK3588 CAN support Cunhao Lu
2026-07-25  7:03 ` [PATCH v5 3/4] arm64: dts: rockchip: add CAN-FD nodes for RK3588 Cunhao Lu
2026-07-30 13:22   ` Quentin Schulz
2026-07-30 14:03     ` Cunhao Lu
2026-07-30 14:13       ` Marc Kleine-Budde
2026-07-25  7:03 ` [PATCH v5 4/4] arm64: dts: rockchip: Enable CAN controller on RK3588-Tiger-Haikou Cunhao Lu
2026-07-30 13:31   ` Quentin Schulz
2026-07-30 14:04     ` Cunhao Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox