Re: [PATCH net-next v2 3/3] net: phy: meson-gxl: add g12a support

From: Heiner Kallweit
Date: Fri Mar 29 2019 - 15:23:08 EST


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.

> { }
> };
>
>