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 <linus.walleij@linaro.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230924-ac101l-phy-v1-1-5e6349e28aa4@linaro.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Linus Walleij 2023-09-24 10:19:02 +02:00 committed by Paolo Abeni
parent ef35bed6fa
commit 3203034529
2 changed files with 25 additions and 12 deletions

View File

@ -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"

View File

@ -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_interrupt(struct phy_device *phydev)
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 },
{ }
};