RE: [EXT] Re: [PATCH 2/2] arm64: dts: freescale: add i.MX952 FRDM Board support device tree

Joseph Guo <[email protected]>
Newsgroups dev.linux.lists.imx,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree
Message-ID <MRWPR04MB12117DA2847C308FDF2108B7394C12@MRWPR04MB12117.eurprd04.prod.outlook.com>

> 
> On Mon, Jul 20, 2026 at 03:03:20PM +0800, Joseph Guo wrote:
> > On 7/20/2026 2:55 PM, [email protected] wrote:
> > > [You don't often get email from [email protected]. Learn why
> > > this is important at https://aka.ms/LearnAboutSenderIdentification ]
> > >
> > > Caution: This is an external email. Please take care when clicking
> > > links or opening attachments. When in doubt, report the message
> > > using the 'Report this email' button
> > >
> > >
> > > Thank you for your contribution! Sashiko AI review found 2 potential
> issue(s) to consider:
> > > - [High] Shared GPIO requested exclusively by two CAN transceivers
> causes probe failure for the second transceiver.
> > > - [Low] Use of undocumented, downstream-only device tree property
> `fsl,cd-gpio-wakeup-disable`.
> > > --
> > >
> > > --- Patch [2]: [PATCH 2/2] arm64: dts: freescale: add i.MX952 FRDM
> > > Board support device tree --- commit
> > > 8bbcb28d08a05e0f4c57023333492b4e023f7caf
> > > Author: Joseph Guo <[email protected]>
> > >
> > > arm64: dts: freescale: add i.MX952 FRDM Board support device tree
> > >
> > > Add basic device tree support for i.MX952 FRDM Board. The
> > > board-common hardware description is placed in imx952-frdm.dtsi so
> > > that it can be shared with future i.MX952-based FRDM derivative boards.
> > >
> > >> diff --git a/arch/arm64/boot/dts/freescale/imx952-frdm.dtsi
> > >> b/arch/arm64/boot/dts/freescale/imx952-frdm.dtsi
> > >> new file mode 100644
> > >> index 0000000000000..b9ef6bec2bd5a
> > >> --- /dev/null
> > >> +++ b/arch/arm64/boot/dts/freescale/imx952-frdm.dtsi
> > >> @@ -0,0 +1,727 @@
> > > [ ... ]
> > >> +     flexcan2_phy: can-phy0 {
> > >> +             compatible = "nxp,tja1051";
> > >> +             #phy-cells = <0>;
> > >> +             max-bitrate = <8000000>;
> > >> +             silent-gpios = <&pcal6416 6 GPIO_ACTIVE_HIGH>;
> > >> +     };
> > >> +
> > >> +     flexcan3_phy: can-phy1 {
> > >> +             compatible = "nxp,tja1051";
> > >> +             #phy-cells = <0>;
> > >> +             max-bitrate = <8000000>;
> > >> +             silent-gpios = <&pcal6416 6 GPIO_ACTIVE_HIGH>;
> > >
> > > [Severity: High]
> > > Does this cause a probe failure for the second transceiver?
> > >
> > > The first PHY node successfully requests this GPIO line, taking
> > > exclusive ownership. Because the phy-can-transceiver driver uses
> > > standard exclusive requests (without
> GPIOD_FLAGS_BIT_NONEXCLUSIVE),
> > > the second request for the exact same GPIO line fails with -EBUSY.
> > >
> > > This prevents the flexcan3_phy and the flexcan3 controller from
> > > probing and functioning.
> > >
> >
> > This two CAN PHY did share same pin as their silent-gpio on hardware.
> 
> Hardware share gpio, but driver may not handle this case. Are you sure
> 
> flexcan3_phy probed if can-phy0 already probed?
> 
> Frank
> 
Hi Frank,

root@imx952-15x15-lpddr5-frdm:~# ls /sys/bus/platform/drivers/flexcan/
421d0000.can  42220000.can  bind  module  uevent  unbind
root@imx952-15x15-lpddr5-frdm:~# ls /sys/bus/platform/drivers/can-transceiver-phy/
bind  can-phy0  can-phy1  module  uevent  unbind

From the log I think both can-phy probe successfully.

Regards,
Joseph

> >
> > The same design on i.MX95 15x15 FRDM. This should be fine.
> >
> > Regards,
> > Joseph
> >
> > >> +     };
> > > [ ... ]
> > >> +&usdhc2 {
> > >> +     bus-width = <4>;
> > >> +     cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
> > >> +     pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> > >> +     pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
> > >> +     pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
> > >> +     pinctrl-3 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> > >> +     pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
> > >> +     vmmc-supply = <&reg_usdhc2_vmmc>;
> > >> +     fsl,cd-gpio-wakeup-disable;
> > >
> > > [Severity: Low]
> > > Is this out-of-tree vendor property invalid in the upstream kernel?
> > >
> > > The property fsl,cd-gpio-wakeup-disable does not exist in any
> > > upstream device tree bindings (such as fsl-imx-esdhc.yaml) and is
> > > not handled by any driver code in the upstream Linux tree. This acts
> > > as dead code and will trigger `make dtbs_check` validation warnings.
> > >
> > >> +     status = "okay";
> > >> +};
> > >
> > > --
> > > Sashiko AI review *
> > > https://sashiko.dev/#/patchset/20260720-imx952_frdm-v1-0-
> 6d145eaaa5c
> > > [email protected]?part=2
> >
> > --
> > Best Regards,
> > Joseph
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.