[Linux-stm32] [PATCH net-next 5/5] net: stmmac: support the TC9564 SoC
Daniel Thompson
daniel at riscstar.com
Thu Nov 5 15:06:12 CET 2026
Hi Maxime
Actually, this might be more for Alex to find when he works through the
review feedback but...
On Mon, Oct 19, 2026 at 09:52:58AM +0200, Maxime Chevallier wrote:
> > +static struct tc9564_mac_speed mac_speed[] = {
> > + { PHY_INTERFACE_MODE_2500BASEX, SPEED_2500, SP_SEL_2500BASEX },
> > + { PHY_INTERFACE_MODE_SGMII, SPEED_1000, SP_SEL_SGMII_1000M },
> > + { PHY_INTERFACE_MODE_SGMII, SPEED_100, SP_SEL_SGMII_100M },
> > + { PHY_INTERFACE_MODE_SGMII, SPEED_10, SP_SEL_SGMII_10M },
> > +};
> <snip>
> > +static int tc9564_mac_speed_select(struct tc9564_data *td,
> > + phy_interface_t interface, int speed)
> > +{
> > + int i;
> > +
> > + for (i = 0; i < ARRAY_SIZE(mac_speed); i++) {
> > + if (mac_speed[i].phy_interface != interface)
> > + continue;
> > +
> > + if (speed == mac_speed[i].speed || speed == SPEED_UNKNOWN)
> > + return mac_speed[i].sp_sel;
> > + }
> > + dev_err(td->dev, "%s/%d unsupported\n", phy_modes(interface), speed);
>
> Is that "mac_speed" lookup table actually needed ? maybe a simpler switch/case
> based on the speed alone would be enough, or do we really need to validate
> the phy_interface_t each time ?
Once we add 10G PHY support I don't think it can be based on link speed
alone (for 10G PHY we have to write the same value to SP_SEL regardless
of link speed).
However even when that happens we could still code it up using switch/case
and ifs.
Daniel.
More information about the Linux-stm32
mailing list