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
..
2026-05-12 10:58:18 -06:00
2026-05-11 18:50:06 +02:00
2026-04-30 23:21:31 +02:00
2026-05-18 12:26:51 +02:00
2026-04-23 12:21:14 -07:00
2026-03-27 09:54:31 +01:00
2026-05-13 17:40:03 -07:00
2026-05-20 22:09:08 +02:00
2026-05-20 16:35:47 -04:00
2026-04-24 13:23:50 -07:00
2026-04-27 15:52:51 -06:00
2026-05-04 12:48:30 -07:00
2026-04-28 20:55:53 -07:00
2026-04-24 13:23:50 -07:00
2026-04-06 09:04:53 +02:00
2026-04-17 14:09:02 -07:00
2026-04-14 17:10:15 -07:00
2026-04-16 17:37:03 +08:00
2026-04-17 15:52:58 -07:00
2026-04-21 14:12:01 -07:00
2026-04-04 03:15:39 +09:00
2026-04-17 10:29:01 -07:00
2026-04-24 11:44:52 -07:00
2026-05-20 19:02:01 -07:00
2026-05-05 14:49:48 +02:00
2026-05-21 08:59:52 -07:00
2026-03-25 14:57:26 +08:00
2026-04-10 11:21:06 -03:00
2026-04-06 09:04:53 +02:00
2026-04-24 11:59:46 -07:00
2026-05-16 09:32:43 +10:00
2026-04-02 15:55:09 +02:00
2026-05-18 13:05:41 -07:00
2026-04-02 22:33:44 +02:00
2026-04-12 23:29:31 -07:00
2026-04-24 11:44:52 -07:00
2026-05-16 08:10:33 -07:00
2026-04-06 09:43:18 -05:00
2026-04-24 13:23:50 -07:00
2026-05-07 10:59:07 +02:00
2026-04-12 22:06:02 +02:00
2026-04-24 13:23:50 -07:00
2026-05-15 17:16:33 -07:00
2026-04-22 18:36:40 -07:00
2026-04-07 10:06:50 +02:00
2026-05-15 07:29:16 +02:00
2026-05-11 15:23:11 +02:00
2026-04-09 13:49:19 +01:00
2026-04-18 13:10:14 -05:00
2026-05-01 11:26:15 -07:00
2026-05-04 08:33:39 +02:00
2026-04-17 11:12:42 -07:00
2026-04-20 11:31:01 -07:00
2026-04-24 13:23:50 -07:00
2026-04-10 10:29:58 +02:00
2026-04-02 17:06:09 +02:00
2026-04-27 15:08:04 +02:00
2026-04-24 13:23:50 -07:00
2026-05-26 17:59:47 -07:00
2026-04-27 18:00:43 -07:00
2026-04-15 14:41:21 -07:00
2026-04-13 10:40:26 -07:00
2026-05-14 07:40:35 -07:00
2026-04-06 09:04:53 +02:00
2026-04-18 11:29:14 -07:00
2026-05-04 11:48:12 +02:00
2026-04-02 17:05:56 +02:00
2026-05-08 15:50:06 -05:00
2026-04-23 11:22:16 -07:00
2026-04-14 16:48:56 -07:00
2026-04-17 10:22:08 -07:00
2026-04-18 16:59:09 -07:00
2026-05-15 11:12:54 -07:00
2026-04-27 14:53:30 +02:00
2026-04-19 08:47:40 -07:00
2026-04-01 16:03:05 +02:00
2026-04-02 16:33:00 +02:00
2026-04-23 08:37:07 -07:00
2026-05-06 21:26:30 +09:00
2026-04-17 14:18:55 -07:00
2026-05-14 09:52:05 +01:00
2026-04-28 19:03:50 -07:00
2026-04-06 09:37:51 -05:00
2026-04-25 16:39:03 -07:00
2026-04-28 14:45:02 +02:00
2026-05-05 14:38:31 -07:00
2026-04-17 14:18:55 -07:00
2026-04-17 10:16:53 -07:00
2026-05-06 23:09:33 +09:00
2026-05-14 14:30:01 -07:00
2026-04-26 21:15:04 -04:00
2026-04-16 20:34:34 -07:00
2026-04-14 08:55:18 -07:00
2026-04-10 13:10:28 +02:00
2026-04-19 08:44:41 -07:00
2026-04-21 20:58:06 -04:00
2026-04-05 13:53:44 -07:00
2026-05-08 17:18:43 +02:00
2026-04-04 00:47:50 +02:00
2026-05-14 11:39:03 -06:00
2026-04-23 16:50:42 -07:00
2026-05-04 10:35:55 +02:00
2026-05-17 11:45:07 -07:00
2026-04-15 12:59:16 -07:00
2026-04-03 10:55:12 +02:00
2026-04-07 21:06:59 +02:00
2026-05-12 19:01:37 +02:00
2026-04-23 10:24:02 -07:00
2026-04-23 10:24:02 -07:00