On 29.03.2019 15:15, Jerome Brunet wrote: > The g12a SoC family uses the type of internal PHY that was used on the > gxl family. The quirks of gxl family, like the LPA register corruption, > appear to have been resolved on this new SoC generation. > > Signed-off-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx> > --- > drivers/net/phy/meson-gxl.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c > index 0eec2913c289..49cad0f4c79b 100644 > --- a/drivers/net/phy/meson-gxl.c > +++ b/drivers/net/phy/meson-gxl.c > @@ -237,11 +237,25 @@ static struct phy_driver meson_gxl_phy[] = { > .config_intr = meson_gxl_config_intr, > .suspend = genphy_suspend, > .resume = genphy_resume, > + }, { > + .phy_id = 0x01803301, > + .phy_id_mask = 0xffffffff, Here you could use the PHY_ID_MATCH_EXACT() macro, see realtek PHY driver for an example. > + .name = "Meson G12A Internal PHY", > + .features = PHY_BASIC_FEATURES, > + .flags = PHY_IS_INTERNAL, > + .soft_reset = genphy_soft_reset, > + .aneg_done = genphy_aneg_done, > + .read_status = genphy_read_status, genphy_aneg_done() and genphy_read_status() are used automatically as fallback if no callback is defined. You can omit these two lines. > + .ack_interrupt = meson_gxl_ack_interrupt, > + .config_intr = meson_gxl_config_intr, > + .suspend = genphy_suspend, > + .resume = genphy_resume, > }, > }; > > static struct mdio_device_id __maybe_unused meson_gxl_tbl[] = { > { 0x01814400, 0xfffffff0 }, > + { 0x01803301, 0xffffffff }, Also a candidate for PHY_ID_MATCH_EXACT. In the line before PHY_ID_MATCH_MODEL could be used. > { } > }; > >