[PATCH v3] arm64: dts: imx943-evk: add flexcan support

Haibo Chen posted 1 patch 5 days, 14 hours ago
arch/arm64/boot/dts/freescale/imx943-evk.dts | 43 ++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
[PATCH v3] arm64: dts: imx943-evk: add flexcan support
Posted by Haibo Chen 5 days, 14 hours ago
Add flexcan2 and flexcan4, and related phys support.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
Changes in v3:
- make all the changes in alperbate order
- Link to v2: https://lore.kernel.org/r/20251119-dts-v2-1-e8f8d91280dd@nxp.com

Changes in v2:
- move the can-phy0/1 before dmic, use nodename order. 
- Link to v1: https://lore.kernel.org/r/20251118-dts-v1-1-81b6249f455f@nxp.com
---
 arch/arm64/boot/dts/freescale/imx943-evk.dts | 43 ++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index c8c3eff9df1a23c52e74bf2bc5d4ba543bb5a65b..9f68f491fea07312be595fd6829617fb59413616 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -25,6 +25,22 @@ bt_sco_codec: bt-sco-codec {
 		#sound-dai-cells = <1>;
 	};
 
+	flexcan2_phy: can-phy0 {
+		compatible = "nxp,tjr1443";
+		#phy-cells = <0>;
+		enable-gpios = <&pcal6416_i2c6_u50 3 GPIO_ACTIVE_HIGH>;
+		max-bitrate = <8000000>;
+		standby-gpios = <&pcal6416_i2c6_u50 4 GPIO_ACTIVE_LOW>;
+	};
+
+	flexcan4_phy: can-phy1 {
+		compatible = "nxp,tjr1443";
+		#phy-cells = <0>;
+		enable-gpios = <&pcal6416_i2c3_u171 0 GPIO_ACTIVE_HIGH>;
+		max-bitrate = <8000000>;
+		standby-gpios = <&pcal6416_i2c3_u171 1 GPIO_ACTIVE_LOW>;
+	};
+
 	chosen {
 		stdout-path = &lpuart1;
 	};
@@ -127,6 +143,20 @@ memory@80000000 {
 	};
 };
 
+&flexcan2 {
+	phys = <&flexcan2_phy>;
+	pinctrl-0 = <&pinctrl_flexcan2>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
+&flexcan4 {
+	phys = <&flexcan4_phy>;
+	pinctrl-0 = <&pinctrl_flexcan4>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
 &lpi2c3 {
 	clock-frequency = <400000>;
 	pinctrl-0 = <&pinctrl_lpi2c3>;
@@ -431,6 +461,19 @@ &sai3 {
 };
 
 &scmi_iomuxc {
+	pinctrl_flexcan2: flexcan2grp {
+		fsl,pins = <
+			IMX94_PAD_GPIO_IO34__CAN2_TX		0x39e
+			IMX94_PAD_GPIO_IO35__CAN2_RX		0x39e
+		>;
+	};
+
+	pinctrl_flexcan4: flexcan4grp {
+		fsl,pins = <
+			IMX94_PAD_GPIO_IO36__CAN4_TX		0x39e
+			IMX94_PAD_GPIO_IO37__CAN4_RX		0x39e
+		>;
+	};
 
 	pinctrl_ioexpander_int2: ioexpanderint2grp {
 		fsl,pins = <

---
base-commit: 187dac290bfd0741b9d7d5490af825c33fd9baa4
change-id: 20251118-dts-ad4bd4fdacd6

Best regards,
-- 
Haibo Chen <haibo.chen@nxp.com>
Re: [PATCH v3] arm64: dts: imx943-evk: add flexcan support
Posted by Frank Li 5 days, 6 hours ago
On Wed, Nov 26, 2025 at 04:06:44PM +0800, Haibo Chen wrote:
> Add flexcan2 and flexcan4, and related phys support.
>
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

> Changes in v3:
> - make all the changes in alperbate order
> - Link to v2: https://lore.kernel.org/r/20251119-dts-v2-1-e8f8d91280dd@nxp.com
>
> Changes in v2:
> - move the can-phy0/1 before dmic, use nodename order.
> - Link to v1: https://lore.kernel.org/r/20251118-dts-v1-1-81b6249f455f@nxp.com
> ---
>  arch/arm64/boot/dts/freescale/imx943-evk.dts | 43 ++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> index c8c3eff9df1a23c52e74bf2bc5d4ba543bb5a65b..9f68f491fea07312be595fd6829617fb59413616 100644
> --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> @@ -25,6 +25,22 @@ bt_sco_codec: bt-sco-codec {
>  		#sound-dai-cells = <1>;
>  	};
>
> +	flexcan2_phy: can-phy0 {
> +		compatible = "nxp,tjr1443";
> +		#phy-cells = <0>;
> +		enable-gpios = <&pcal6416_i2c6_u50 3 GPIO_ACTIVE_HIGH>;
> +		max-bitrate = <8000000>;
> +		standby-gpios = <&pcal6416_i2c6_u50 4 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	flexcan4_phy: can-phy1 {
> +		compatible = "nxp,tjr1443";
> +		#phy-cells = <0>;
> +		enable-gpios = <&pcal6416_i2c3_u171 0 GPIO_ACTIVE_HIGH>;
> +		max-bitrate = <8000000>;
> +		standby-gpios = <&pcal6416_i2c3_u171 1 GPIO_ACTIVE_LOW>;
> +	};
> +
>  	chosen {
>  		stdout-path = &lpuart1;
>  	};
> @@ -127,6 +143,20 @@ memory@80000000 {
>  	};
>  };
>
> +&flexcan2 {
> +	phys = <&flexcan2_phy>;
> +	pinctrl-0 = <&pinctrl_flexcan2>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
> +&flexcan4 {
> +	phys = <&flexcan4_phy>;
> +	pinctrl-0 = <&pinctrl_flexcan4>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
>  &lpi2c3 {
>  	clock-frequency = <400000>;
>  	pinctrl-0 = <&pinctrl_lpi2c3>;
> @@ -431,6 +461,19 @@ &sai3 {
>  };
>
>  &scmi_iomuxc {
> +	pinctrl_flexcan2: flexcan2grp {
> +		fsl,pins = <
> +			IMX94_PAD_GPIO_IO34__CAN2_TX		0x39e
> +			IMX94_PAD_GPIO_IO35__CAN2_RX		0x39e
> +		>;
> +	};
> +
> +	pinctrl_flexcan4: flexcan4grp {
> +		fsl,pins = <
> +			IMX94_PAD_GPIO_IO36__CAN4_TX		0x39e
> +			IMX94_PAD_GPIO_IO37__CAN4_RX		0x39e
> +		>;
> +	};
>
>  	pinctrl_ioexpander_int2: ioexpanderint2grp {
>  		fsl,pins = <
>
> ---
> base-commit: 187dac290bfd0741b9d7d5490af825c33fd9baa4
> change-id: 20251118-dts-ad4bd4fdacd6
>
> Best regards,
> --
> Haibo Chen <haibo.chen@nxp.com>
>