The TJA1048 used on i.MX8MP-EVK is actually high-speed CAN
transceiver, not a regulator supply. So use phys to reflect the truth.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 43 +++++++++-------------------
1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index c0cc5611048e6a739f13c14bbd2e7b26f2715696..d238d419d87cc7c99d472720c96aade90275cb0f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -56,6 +56,16 @@ memory@40000000 {
<0x1 0x00000000 0 0xc0000000>;
};
+ flexcan_phy: can-phy {
+ compatible = "nxp,tja1048";
+ #phy-cells = <1>;
+ max-bitrate = <5000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flexcan_phy>;
+ standby-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>,
+ <&gpio4 27 GPIO_ACTIVE_LOW>;
+ };
+
native-hdmi-connector {
compatible = "hdmi-connector";
label = "HDMI OUT";
@@ -103,28 +113,6 @@ reg_audio_pwr: regulator-audio-pwr {
enable-active-high;
};
- reg_can1_stby: regulator-can1-stby {
- compatible = "regulator-fixed";
- regulator-name = "can1-stby";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan1_reg>;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_can2_stby: regulator-can2-stby {
- compatible = "regulator-fixed";
- regulator-name = "can2-stby";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan2_reg>;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
reg_pcie0: regulator-pcie {
compatible = "regulator-fixed";
pinctrl-names = "default";
@@ -431,14 +419,14 @@ ethphy1: ethernet-phy@1 {
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
- xceiver-supply = <®_can1_stby>;
+ phys = <&flexcan_phy 0>;
status = "okay";
};
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
- xceiver-supply = <®_can2_stby>;
+ phys = <&flexcan_phy 1>;
status = "disabled";/* can2 pin conflict with pdm */
};
@@ -903,14 +891,9 @@ MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
>;
};
- pinctrl_flexcan1_reg: flexcan1reggrp {
+ pinctrl_flexcan_phy: flexcanphygrp {
fsl,pins = <
MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154 /* CAN1_STBY */
- >;
- };
-
- pinctrl_flexcan2_reg: flexcan2reggrp {
- fsl,pins = <
MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x154 /* CAN2_STBY */
>;
};
--
2.37.1
On Mon, Aug 25, 2025 at 04:36:45PM +0800, Peng Fan wrote:
> The TJA1048 used on i.MX8MP-EVK is actually high-speed CAN
> transceiver, not a regulator supply. So use phys to reflect the truth.
nit: wrap at 75 chars. 'transceiver', should be at first line.
Reviewed-by: Frank Li <Frank.Li@nxp.com>
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 43 +++++++++-------------------
> 1 file changed, 13 insertions(+), 30 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> index c0cc5611048e6a739f13c14bbd2e7b26f2715696..d238d419d87cc7c99d472720c96aade90275cb0f 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> @@ -56,6 +56,16 @@ memory@40000000 {
> <0x1 0x00000000 0 0xc0000000>;
> };
>
> + flexcan_phy: can-phy {
> + compatible = "nxp,tja1048";
> + #phy-cells = <1>;
> + max-bitrate = <5000000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_flexcan_phy>;
> + standby-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>,
> + <&gpio4 27 GPIO_ACTIVE_LOW>;
> + };
> +
> native-hdmi-connector {
> compatible = "hdmi-connector";
> label = "HDMI OUT";
> @@ -103,28 +113,6 @@ reg_audio_pwr: regulator-audio-pwr {
> enable-active-high;
> };
>
> - reg_can1_stby: regulator-can1-stby {
> - compatible = "regulator-fixed";
> - regulator-name = "can1-stby";
> - pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_flexcan1_reg>;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
> - enable-active-high;
> - };
> -
> - reg_can2_stby: regulator-can2-stby {
> - compatible = "regulator-fixed";
> - regulator-name = "can2-stby";
> - pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_flexcan2_reg>;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
> - enable-active-high;
> - };
> -
> reg_pcie0: regulator-pcie {
> compatible = "regulator-fixed";
> pinctrl-names = "default";
> @@ -431,14 +419,14 @@ ethphy1: ethernet-phy@1 {
> &flexcan1 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flexcan1>;
> - xceiver-supply = <®_can1_stby>;
> + phys = <&flexcan_phy 0>;
> status = "okay";
> };
>
> &flexcan2 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flexcan2>;
> - xceiver-supply = <®_can2_stby>;
> + phys = <&flexcan_phy 1>;
> status = "disabled";/* can2 pin conflict with pdm */
> };
>
> @@ -903,14 +891,9 @@ MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
> >;
> };
>
> - pinctrl_flexcan1_reg: flexcan1reggrp {
> + pinctrl_flexcan_phy: flexcanphygrp {
> fsl,pins = <
> MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154 /* CAN1_STBY */
> - >;
> - };
> -
> - pinctrl_flexcan2_reg: flexcan2reggrp {
> - fsl,pins = <
> MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x154 /* CAN2_STBY */
> >;
> };
>
> --
> 2.37.1
>
© 2016 - 2026 Red Hat, Inc.