Re: [PATCH v2] net: phy: add Maxlinear GPY115/21x/24x driver
From: Liang Xu <lxu@maxlinear.com>
Date: 2021-06-07 04:04:46
On 5/6/2021 10:37 pm, Andrew Lunn wrote:
This email was sent from outside of MaxLinear. On Sat, Jun 05, 2021 at 03:46:18AM +0000, Liang Xu wrote:quoted
On 5/6/2021 4:39 am, Andrew Lunn wrote:quoted
This email was sent from outside of MaxLinear. On Fri, Jun 04, 2021 at 12:52:02PM +0000, Liang Xu wrote:quoted
On 4/6/2021 8:15 pm, Andrew Lunn wrote:quoted
This email was sent from outside of MaxLinear.quoted
+config MXL_GPHY + tristate "Maxlinear PHYs" + help + Support for the Maxlinear GPY115, GPY211, GPY212, GPY215, + GPY241, GPY245 PHYs.Do these PHYs have unique IDs in register 2 and 3? What is the format of these IDs? The OUI is fixed. But often the rest is split into two. The higher part indicates the product, and the lower part is the revision. We then have a struct phy_driver for each product, and the mask is used to match on all the revisions of the product. AndrewRegister 2, Register 3 bit 10~15 - OUI Register 3 bit 4~9 - product number Register 3 bit 0~3 - revision numberThese PHYs have same ID and no difference OUI, product number, revision number.Are you saying GPY115, GPY211, GPY212, GPY215, GPY241, GPY245 all have the same product number? Normally, each PHY has its own product ID, and so we have: /* Vitesse 82xx */ static struct phy_driver vsc82xx_driver[] = { { .phy_id = PHY_ID_VSC8234, .name = "Vitesse VSC8234", .phy_id_mask = 0x000ffff0, /* PHY_GBIT_FEATURES */ .config_init = &vsc824x_config_init, .config_aneg = &vsc82x4_config_aneg, .config_intr = &vsc82xx_config_intr, .handle_interrupt = &vsc82xx_handle_interrupt, }, { .phy_id = PHY_ID_VSC8244, .name = "Vitesse VSC8244", .phy_id_mask = 0x000fffc0, /* PHY_GBIT_FEATURES */ .config_init = &vsc824x_config_init, .config_aneg = &vsc82x4_config_aneg, .config_intr = &vsc82xx_config_intr, .handle_interrupt = &vsc82xx_handle_interrupt, }, { .phy_id = PHY_ID_VSC8572, .name = "Vitesse VSC8572", .phy_id_mask = 0x000ffff0, /* PHY_GBIT_FEATURES */ .config_init = &vsc824x_config_init, .config_aneg = &vsc82x4_config_aneg, .config_intr = &vsc82xx_config_intr, .handle_interrupt = &vsc82xx_handle_interrupt, }, { one entry to describe one PHY. Andrew
Yes, they all have same product number. They are one IP. The difference is feature set it's enabled by fusing in silicon. For example, GPY115 has 10/100/1000Mbps support, so in the ability register 2.5G capable is 0. GPY211 has 10/100/1000/2500Mbps support, so in the capability register 2.5G capable is 1.