Linux kernel and device drivers for NXP i.MX platforms
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Stefan Wahren" <wahrenst@gmx.net>
Cc: imx@lists.linux.dev, devicetree@vger.kernel.org,
	conor+dt@kernel.org, robh@kernel.org, Frank.Li@kernel.org
Subject: Re: [PATCH 2/5] ARM: dts: imx6ull-tarragon-common: Fix Ethernet PHY issues
Date: Sun, 04 Oct 2026 14:20:01 +0000	[thread overview]
Message-ID: <20261004142002.1B2F31F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20261004140123.46461-3-wahrenst@gmx.net>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] dts: Missing PHY ID in compatible string causes PHY probe failure
- [High] dts: PHY reset pinctrl applied too late due to PHY node placement
- [Medium] dts: PHY reset duration drastically reduced from 25ms to 500us
--

commit f2c57a8f69beb5f6e98a9a695928883c23235853
Author: Stefan Wahren <wahrenst@gmx.net>
ARM: dts: imx6ull-tarragon-common: Fix Ethernet PHY issues

This commit moves the SMSC LAN8710 Ethernet PHY reset handling to the
generic PHY reset properties on the Tarragon platform.

[Severity: High]
In arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-common.dtsi, the ethphy0
node at line 131 sets the compatible string to ethernet-phy-ieee802.3-c22.
Does this missing explicit PHY ID cause the MDIO core to fail device
creation?

When the MDIO bus is registered, fwnode_mdiobus_register_phy in
drivers/net/mdio/fwnode_mdio.c (around line 132) will try to parse the PHY
ID from the compatible string. If it fails, it falls back to
get_phy_device to read the ID directly from the MDIO bus. Since the PHY is
still held in hardware reset during this read, it will receive 0xffff and
return -ENODEV. The generic PHY reset logic runs after the PHY device is
created, creating a chicken-and-egg situation where the PHY is never
detected.

[Severity: High]
In arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-common.dtsi, moving the
pinctrl_enet1_phy_rst from the fec1 node (line 114) to the ethphy0 node
(line 130) appears to apply the pinctrl too late.

Could this cause the PHY reset GPIO pad to remain unconfigured during the
initial MDIO device registration reset sequence? The Linux driver core
applies pinctrl state just before the device probe binds. However, the
MDIO core initial hardware reset pulse happens before the PHY device is
added and bound to a driver. Since the i.MX pinctrl driver does not
implement gpio_request_enable, requesting the GPIO does not automatically
mux the pin in hardware, causing the reset pulse to be swallowed and
leading to initialization failures on cold boots.

[Severity: Medium]
In arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-common.dtsi, the previous
phy-reset-duration on the fec1 node at line 118 was 25 milliseconds. The
new reset-assert-us and reset-deassert-us properties on the ethphy0 node
at line 137 are 500 microseconds.

Can this 50x reduction in reset duration violate the PHY hardware timing
requirements and cause intermittent link negotiation failures? It looks
like the units might have been confused between milliseconds and
microseconds when migrating these properties.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261004140123.46461-1-wahrenst@gmx.net?part=2

  reply	other threads:[~2026-10-04 14:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-04 14:01 [PATCH 0/5] ARM: dts: imx6ull-tarragon-common: Fix several issues Stefan Wahren
2026-10-04 14:01 ` [PATCH 1/5] ARM: dts: imx6ull-tarragon-common: Fix Ethernet regression Stefan Wahren
2026-10-04 14:01 ` [PATCH 2/5] ARM: dts: imx6ull-tarragon-common: Fix Ethernet PHY issues Stefan Wahren
2026-10-04 14:20   ` sashiko-bot [this message]
2026-10-04 14:01 ` [PATCH 3/5] ARM: dts: imx6ull-tarragon-common: Disable unused LDOs Stefan Wahren
2026-10-04 14:01 ` [PATCH 4/5] ARM: dts: imx6ull-tarragon-common: Fix i.MX6ULL DVFS Stefan Wahren
2026-10-04 14:01 ` [PATCH 5/5] ARM: dts: imx6ull-tarragon-common: Fix vmmc supply Stefan Wahren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261004142002.1B2F31F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=wahrenst@gmx.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox