* [PATCH v2 RESEND] arm64: dts: nuvoton: ma35d1: add CAN nodes
@ 2026-07-08 8:24 Zi-Yu Chen
2026-07-10 14:16 ` Arnd Bergmann
0 siblings, 1 reply; 2+ messages in thread
From: Zi-Yu Chen @ 2026-07-08 8:24 UTC (permalink / raw)
To: arnd, olof
Cc: soc, ychuang3, schung, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, Zi-Yu Chen
Add controller nodes for the four Bosch M_CAN blocks found on the
Nuvoton MA35D1 SoC.
Additionally, configure pinctrl and enable CAN1 and CAN3 on the
MA35D1 SOM board. Also, update the APLL frequency to 200MHz to ensure
the CAN controllers receive the required input clock for 50MHz operation.
Signed-off-by: Zi-Yu Chen <zychennvt@gmail.com>
---
Resend note:
- resend with the complete Cc list; no patch changes
.../boot/dts/nuvoton/ma35d1-som-256m.dts | 32 +++++++++++-
arch/arm64/boot/dts/nuvoton/ma35d1.dtsi | 52 +++++++++++++++++++
2 files changed, 83 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts b/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
index f6f20a17e501..fb23b0573bdc 100644
--- a/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
+++ b/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
@@ -37,6 +37,22 @@ clk_hxt: clock-hxt {
};
};
+&can1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can1>;
+ assigned-clocks = <&clk CAN1_DIV>;
+ assigned-clock-rates = <50000000>;
+ status = "okay";
+};
+
+&can3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can3>;
+ assigned-clocks = <&clk CAN3_DIV>;
+ assigned-clock-rates = <50000000>;
+ status = "okay";
+};
+
&clk {
assigned-clocks = <&clk CAPLL>,
<&clk DDRPLL>,
@@ -45,7 +61,7 @@ &clk {
<&clk VPLL>;
assigned-clock-rates = <800000000>,
<266000000>,
- <180000000>,
+ <200000000>,
<500000000>,
<102000000>;
nuvoton,pll-mode = "integer",
@@ -56,6 +72,20 @@ &clk {
};
&pinctrl {
+ can-grp {
+ pinctrl_can1: can1-pins {
+ nuvoton,pins = <11 14 4>,
+ <11 15 4>;
+ bias-disable;
+ };
+
+ pinctrl_can3: can3-pins {
+ nuvoton,pins = <11 10 3>,
+ <11 11 3>;
+ bias-disable;
+ };
+ };
+
uart-grp {
pinctrl_uart0: uart0-pins {
nuvoton,pins = <4 14 1>,
diff --git a/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi b/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
index e51b98f5bdce..494724a25f3b 100644
--- a/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
+++ b/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
@@ -244,6 +244,58 @@ gpion: gpio@340 {
};
};
+ can0: can@403c0000 {
+ compatible = "bosch,m_can";
+ reg = <0x0 0x403c0000 0x0 0x200>, <0x0 0x403c0200 0x0 0x2000>;
+ reg-names = "m_can", "message_ram";
+ interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "int0", "int1";
+ clocks = <&clk HCLK3>, <&clk CAN0_GATE>;
+ clock-names = "hclk", "cclk";
+ bosch,mram-cfg = <0x0 4 4 32 32 32 8 8>;
+ status = "disabled";
+ };
+
+ can1: can@403d0000 {
+ compatible = "bosch,m_can";
+ reg = <0x0 0x403d0000 0x0 0x200>, <0x0 0x403d0200 0x0 0x2000>;
+ reg-names = "m_can", "message_ram";
+ interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "int0", "int1";
+ clocks = <&clk HCLK3>, <&clk CAN1_GATE>;
+ clock-names = "hclk", "cclk";
+ bosch,mram-cfg = <0x0 4 4 32 32 32 8 8>;
+ status = "disabled";
+ };
+
+ can2: can@403e0000 {
+ compatible = "bosch,m_can";
+ reg = <0x0 0x403e0000 0x0 0x200>, <0x0 0x403e0200 0x0 0x2000>;
+ reg-names = "m_can", "message_ram";
+ interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "int0", "int1";
+ clocks = <&clk HCLK3>, <&clk CAN2_GATE>;
+ clock-names = "hclk", "cclk";
+ bosch,mram-cfg = <0x0 4 4 32 32 32 8 8>;
+ status = "disabled";
+ };
+
+ can3: can@403f0000 {
+ compatible = "bosch,m_can";
+ reg = <0x0 0x403f0000 0x0 0x200>, <0x0 0x403f0200 0x0 0x2000>;
+ reg-names = "m_can", "message_ram";
+ interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "int0", "int1";
+ clocks = <&clk HCLK3>, <&clk CAN3_GATE>;
+ clock-names = "hclk", "cclk";
+ bosch,mram-cfg = <0x0 4 4 32 32 32 8 8>;
+ status = "disabled";
+ };
+
uart0: serial@40700000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40700000 0x0 0x100>;
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2 RESEND] arm64: dts: nuvoton: ma35d1: add CAN nodes
2026-07-08 8:24 [PATCH v2 RESEND] arm64: dts: nuvoton: ma35d1: add CAN nodes Zi-Yu Chen
@ 2026-07-10 14:16 ` Arnd Bergmann
0 siblings, 0 replies; 2+ messages in thread
From: Arnd Bergmann @ 2026-07-10 14:16 UTC (permalink / raw)
To: Zi-Yu Chen, Olof Johansson
Cc: soc, Jacky Huang, schung, Rob Herring, krzk+dt, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Andrew Jeffery
On Wed, Jul 8, 2026, at 10:24, Zi-Yu Chen wrote:
> Add controller nodes for the four Bosch M_CAN blocks found on the
> Nuvoton MA35D1 SoC.
>
> Additionally, configure pinctrl and enable CAN1 and CAN3 on the
> MA35D1 SOM board. Also, update the APLL frequency to 200MHz to ensure
> the CAN controllers receive the required input clock for 50MHz operation.
>
> Signed-off-by: Zi-Yu Chen <zychennvt@gmail.com>
> ---
> Resend note:
> - resend with the complete Cc list; no patch changes
Hi,
I don't see anything wrong with the patch contents, but I think you still
have the wrong Cc list. You have sent the patch Cc: soc@lists.linux.dev,
which is where maintainers should send the patch when it is ready for
inclusion in the SoC tree, and you have sent it To Olof and me.
Olof retired as SoC tree maintainer a while ago, and I'm not going to
apply this because it should go through the Nuvoton tree maintained
by Jacky Huang and Shan-Chun Hung.
Please send future patches to the maintainers that are in charge of
applying the patches, without adding soc@lists.linux.dev yourself.
The maintainers will then forward it when they are happy with the
changes.
I just noticed that we have two conflicting maintainers entries
for ma35:
- Jacky and Shan-Chun are listed for the ma35 SoC, but have
not sent any updates after the initial merge in 2024 and
don't currently have a git tree in linux-next
- Andrew Jeffery and his team are listed for npcm with
arch/arm64/boot/dts/nuvoton/ listed as one of the file
locations, though that contains both ma35 and npcm.
Andrew has the bmc tree in linux-next and has recently
picked up patches for both npcm and ma35.
I see there is a lot of activity at the moment working on
ma35 drivers, so it would be good if the maintainers could
figure this out together and provide better guidance to
individual developers. I don't mind pulling from one
team or the other, but I would definitely prefer the MAINTAINERS
file to reflect the actual state here.
If Jacky and Shan-Chun are planning to do the merges going
forward, they should add their git tree to linux-next and
update the MAINTAINERS file to list the git URL.
Arnd
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-10 14:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-08 8:24 [PATCH v2 RESEND] arm64: dts: nuvoton: ma35d1: add CAN nodes Zi-Yu Chen
2026-07-10 14:16 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox