On Thu, Nov 30, 2023 at 06:26:13PM +0100, Andrew Lunn wrote: > > I will check with the xpcs maintainer how can we add indirect access > > to the xpcs module. > > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c#L449 > > It creates a regmap for the memory range. On top of that it creates an > MDIO bus. You can then access the PCS in the normal way. Actually Synopsys DW XPCS can be synthesized with two types of the CSR interfaces: 1. MDIO: device looks as a normal MDIO device. This option is currently supported by the STMMAC MDIO driver. 2. MCI/APB3: device MMD CSRs are directly (all CSRs are visible) or indirectly (paged-base access) accessible over the system memory bus. In addition to the above XPCS device can be equipped with separate clock sources (at least to feed the MCI or APB3 interface) and may have dedicated IRQ line to signal various events like link establishing, failures, etc. From that perspective XPCS in both cases looks as a normal platform device for which would be better to have a special DT-node defined with all those resources supplied. Then the XPCS DT-node could be passed to the DW MAC DT-node via the already standardized "pcs-handle" DT-property. I have such approach implemented in my local repo. If you consider this as a proper solution, after a small modification I'll be able to submit a patchset for review tomorrow. -Serge(y) > > Andrew >