[PATCH net v3 0/2] net: phy: qca808x: fix the active-high LED polarity mode

From: Donggeun Yoo

Date: Tue Sep 15 2026 - 18:32:01 EST


A QCA8081 with an 'active-high' LED node does not work today, in two
separate ways, so this is now two patches: qca808x_led_polarity_set()
rejects the mode outright, and once it stops doing that
qca808x_config_init() still will not put the bit back after the reset
phy_init_hw() runs.

Tested in QEMU against a synthetic MDIO bus that answers as a QCA8081 and
emulates MMD7 0x901a, with the reset clearing BIT(6) as f203c8c77c76
describes. One kernel, one harness, three arms, x86_64, 7.3.0-rc2+:

DT node base 1/2 only 1/2 + 2/2
active-high -EINVAL inverted correct
active-low correct correct correct
no polarity node correct correct correct
high-impedance -EINVAL -EINVAL -EINVAL

Still no QCA808x hardware here; the harness emulates the one register, so
a confirmation on a real board would be welcome.

Changes since v2: https://lore.kernel.org/netdev/20260914214720.2467586-1-donggeunyoo.kernel@xxxxxxxxx/
- Split in two, one defect each, per Christian Marangi.
- Add QCA808X_PHY_LED_UNSET and express the condition as
PHY_LED_ACTIVE_LOW instead of bare -1/0/1, per Christian Marangi.
- Tested rather than compile-tested; see the table above.

Donggeun Yoo (2):
net: phy: qca808x: accept the active-high LED polarity mode
net: phy: qca808x: keep an explicit active-high LED across the reset

drivers/net/phy/qcom/qca808x.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

--
2.53.0