mirror-linux/drivers/net/phy
Lucien.Jheng d895767c33 net: phy: air_en8811h: add AN8811HB MCU assert/deassert support
AN8811HB needs a MCU soft-reset cycle before firmware loading begins.
Assert the MCU (hold it in reset) and immediately deassert (release)
via a dedicated PBUS register pair (0x5cf9f8 / 0x5cf9fc), accessed
through a registered mdio_device at PHY-addr+8.

Add __air_pbus_reg_write() as a low-level helper taking a struct
mdio_device *, create and register the PBUS mdio_device in
an8811hb_probe() and store it in priv->pbusdev, then implement
an8811hb_mcu_assert() / _deassert() on top of it. Add
an8811hb_remove() to unregister the PBUS device on teardown. Wire
both calls into an8811hb_load_firmware() and en8811h_restart_mcu()
so every firmware load or MCU restart on AN8811HB correctly sequences
the reset control registers.

Fixes: 5afda1d734 ("net: phy: air_en8811h: add Airoha AN8811HB support")
Signed-off-by: Lucien Jheng <lucienzx159@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260524063915.47961-1-lucienzx159@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-05-26 17:59:47 -07:00
..
aquantia net: phy: aquantia: check for NVMEM deferral 2025-11-28 19:40:42 -08:00
mediatek net: phy: mediatek: enable interrupts on AN7581 2026-01-05 16:16:53 -08:00
mscc Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qcom net: phy: qcom: at803x: Use the correct bit to disable extended next page 2026-04-13 14:36:22 -07:00
realtek net: phy: realtek: use LEDCR page number define on RTL8211F 2026-04-13 16:38:25 -07:00
Kconfig net: phy: remove Kconfig symbol MDIO_BUS 2026-03-18 18:27:12 -07:00
Makefile net: phy: remove Kconfig symbol MDIO_BUS 2026-03-18 18:27:12 -07:00
adin.c net: phy: adin: enable configuration of the LP Termination Register 2026-01-15 19:36:04 -08:00
adin1100.c net: phy: adin1100: Simplify register value passing 2025-11-20 18:03:59 -08:00
air_en8811h.c net: phy: air_en8811h: add AN8811HB MCU assert/deassert support 2026-05-26 17:59:47 -07:00
amd.c
as21xxx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ax88796b.c net: phy: ax88796b: Replace hard-coded values with PHY_ID_MATCH_MODEL() 2025-09-22 16:38:59 -07:00
ax88796b_rust.rs drivers: net: replace `kernel::c_str!` with C-Strings 2026-01-05 16:32:39 -08:00
bcm-cygnus.c
bcm-phy-lib.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm-phy-lib.h net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm-phy-ptp.c net: phy: broadcom: add HW timestamp configuration reporting 2025-11-26 16:56:34 -08:00
bcm7xxx.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm63xx.c
bcm87xx.c
bcm54140.c
bcm84881.c net: phy: bcm84881: add LED framework support for BCM84891/BCM84892 2026-04-02 17:59:43 -07:00
broadcom.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
cicada.c
cortina.c
davicom.c
dp83tc811.c net: phy: DP83TC811: add reading of abilities 2026-05-14 15:17:12 +02:00
dp83td510.c net: phy: dp83td510: add MSE interface support for 10BASE-T1L 2025-11-03 18:32:27 -08:00
dp83tg720.c
dp83640.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
dp83640_reg.h
dp83822.c net: phy: dp83822: Add support for phy_port representation 2026-01-13 18:52:34 -08:00
dp83848.c
dp83867.c net: phy: dp83867: Always program R/SGMII enable bits 2026-02-02 17:19:53 -08:00
dp83869.c net: phy: dp83869: fix setting CLK_O_SEL field. 2026-04-28 15:51:55 +02:00
et1011c.c
fixed_phy.c net: phy: fixed_phy: replace IDA with a bitmap 2026-01-13 18:58:49 -08:00
icplus.c
intel-xway.c net: phy: intel-xway: fix OF node refcount leakage 2026-01-20 15:57:21 -08:00
linkmode.c
lxt.c
marvell-88q2xxx.c net: phy: marvell-88q2xxx: Fix clamped value in mv88q2xxx_hwmon_write 2025-12-04 17:49:31 -08:00
marvell-88x2222.c net: phy: marvell-88x2222: Support SFP through phy_port interface 2026-01-13 18:52:35 -08:00
marvell.c net: phy: marvell: Support SFP through phy_port interface 2026-01-13 18:52:35 -08:00
marvell10g.c net: phy: marvell10g: Support SFP through phy_port 2026-01-13 18:52:35 -08:00
mdio-open-alliance.h net: phy: phy-c45: add SQI and SQI+ support for OATC14 10Base-T1S PHYs 2025-12-01 15:08:24 -08:00
mdio_bus.c net: phy: move remaining provider code to mdio_bus_provider.c 2026-03-14 12:23:02 -07:00
mdio_bus_provider.c Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
mdio_device.c net: phy: make mdio_device.c part of libphy 2026-03-14 12:23:02 -07:00
mdio_devres.c
meson-gxl.c
micrel.c net: phy: micrel: fix LAN8814 QSGMII soft reset 2026-04-30 16:49:23 -07:00
microchip.c net: phy: microchip: enable downshift by default on LAN88xx 2026-04-02 18:03:03 -07:00
microchip_rds_ptp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
microchip_rds_ptp.h
microchip_t1.c
microchip_t1s.c net: phy: microchip_t1s: add SQI support for LAN867x Rev.D0 PHYs 2025-12-01 15:08:24 -08:00
mii_timestamper.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
motorcomm.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-01-15 18:02:48 -08:00
mxl-86110.c net: phy: mxl-86110: Add power management and soft reset support 2026-01-04 09:53:33 -08:00
mxl-gpy.c net: phy: mxl-gpy: add PHY-level statistics via ethtool 2026-03-17 16:07:40 -07:00
national.c
ncn26000.c
nxp-c45-tja11xx-macsec.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nxp-c45-tja11xx.c net: phy: nxp-c45-tja11xx: add HW timestamp configuration reporting 2025-11-26 16:56:34 -08:00
nxp-c45-tja11xx.h
nxp-cbtx.c
nxp-tja11xx.c
open_alliance_helpers.c
open_alliance_helpers.h
phy-c45.c net: phy: skip EEE advertisement write when autoneg is disabled 2026-05-19 18:45:16 -07:00
phy-caps.h net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy-core.c net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy.c net: phy: add a PHY write barrier when disabling interrupts 2026-04-12 14:19:19 -07:00
phy_caps.c net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy_device.c net: phy: honor eee_disabled_modes in phy_advertise_eee_all() 2026-05-19 18:45:26 -07:00
phy_led_triggers.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
phy_link_topology.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
phy_package.c net: phy: update outdated comment for removed phy_package_read/write() 2026-03-24 13:21:28 +01:00
phy_port.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
phylib-internal.h net: phy: move remaining provider code to mdio_bus_provider.c 2026-03-14 12:23:02 -07:00
phylib.h net: phy: move mmd_phy_read and mmd_phy_write to phylib.h 2026-01-08 13:18:26 +01:00
phylink.c net: phylink: use phylink_expects_phy() in phylink_fwnode_phy_connect() 2026-03-26 18:24:56 -07:00
qsemi.c
qt2025.rs drivers: net: replace `kernel::c_str!` with C-Strings 2026-01-05 16:32:39 -08:00
rockchip.c
sfp-bus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sfp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-04-09 13:20:59 -07:00
sfp.h net: sfp: convert sfp quirks to modify struct sfp_module_support 2025-09-22 16:05:14 -07:00
smsc.c
ste10Xp.c
stubs.c
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c net: phy: vitesse: add inband caps and configuration 2026-03-12 17:55:33 -07:00
xilinx_gmii2rgmii.c