12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- From 49e5663b505070424e18099841943f34342aa405 Mon Sep 17 00:00:00 2001
- From: Linus Walleij <[email protected]>
- Date: Sun, 24 Sep 2023 01:09:01 +0200
- Subject: [PATCH] net: phy: amd: Support the Altima AMI101L
- The Altima AC101L is obviously compatible with the AMD PHY,
- as seen by reading the datasheet.
- Datasheet: https://docs.broadcom.com/doc/AC101L-DS05-405-RDS.pdf
- Signed-off-by: Linus Walleij <[email protected]>
- ---
- drivers/net/phy/Kconfig | 4 ++--
- drivers/net/phy/amd.c | 33 +++++++++++++++++++++++----------
- 2 files changed, 25 insertions(+), 12 deletions(-)
- --- a/drivers/net/phy/Kconfig
- +++ b/drivers/net/phy/Kconfig
- @@ -69,9 +69,9 @@ config SFP
- comment "MII PHY device drivers"
-
- config AMD_PHY
- - tristate "AMD PHYs"
- + tristate "AMD and Altima PHYs"
- help
- - Currently supports the am79c874
- + Currently supports the AMD am79c874 and Altima AC101L.
-
- config MESON_GXL_PHY
- tristate "Amlogic Meson GXL Internal PHY"
- --- a/drivers/net/phy/amd.c
- +++ b/drivers/net/phy/amd.c
- @@ -13,6 +13,7 @@
- #include <linux/mii.h>
- #include <linux/phy.h>
-
- +#define PHY_ID_AC101L 0x00225520
- #define PHY_ID_AM79C874 0x0022561b
-
- #define MII_AM79C_IR 17 /* Interrupt Status/Control Register */
- @@ -87,19 +88,31 @@ static irqreturn_t am79c_handle_interrup
- return IRQ_HANDLED;
- }
-
- -static struct phy_driver am79c_driver[] = { {
- - .phy_id = PHY_ID_AM79C874,
- - .name = "AM79C874",
- - .phy_id_mask = 0xfffffff0,
- - /* PHY_BASIC_FEATURES */
- - .config_init = am79c_config_init,
- - .config_intr = am79c_config_intr,
- - .handle_interrupt = am79c_handle_interrupt,
- -} };
- +static struct phy_driver am79c_drivers[] = {
- + {
- + .phy_id = PHY_ID_AM79C874,
- + .name = "AM79C874",
- + .phy_id_mask = 0xfffffff0,
- + /* PHY_BASIC_FEATURES */
- + .config_init = am79c_config_init,
- + .config_intr = am79c_config_intr,
- + .handle_interrupt = am79c_handle_interrupt,
- + },
- + {
- + .phy_id = PHY_ID_AC101L,
- + .name = "AC101L",
- + .phy_id_mask = 0xfffffff0,
- + /* PHY_BASIC_FEATURES */
- + .config_init = am79c_config_init,
- + .config_intr = am79c_config_intr,
- + .handle_interrupt = am79c_handle_interrupt,
- + },
- +};
-
- -module_phy_driver(am79c_driver);
- +module_phy_driver(am79c_drivers);
-
- static struct mdio_device_id __maybe_unused amd_tbl[] = {
- + { PHY_ID_AC101L, 0xfffffff0 },
- { PHY_ID_AM79C874, 0xfffffff0 },
- { }
- };
|