On Sat, Jan 06, 2024 at 04:45:08PM +0100, Andrew Lunn wrote:
I just realized that the UNIPHY block is a MII (probably SGMII) controller.
Isn't it? And I expect that it responsible more then just for clock
enabling. It should also activate and perform a basic configuration of MII
for actual data transmission. If so, then it should placed somewhere under
drivers/net/phy or drivers/net/pcs.
Before we decide that, we need a description of what the UNIPHY
actually does, what registers it has, etc. Sometimes blocks like this
get split into a generic PHY, aka drivers/phy/ and a PCS driver. This
would be true if the UNIPHY is also used for USB SERDES, SATA SERDES
etc. The SERDES parts go into a generic PHY driver, and the SGMII on
to of the SERDES is placed is a PCS driver.
The problem i have so far is that there is no usable description of
any of this hardware, and the developers trying to produce drivers for
this hardware don't actually seem to understand the Linux architecture
for things like this.
+1. I think it's now more convoluted than ever, and someone needs to
take a step back, look at the hardware, look at the kernel model, and
work out how to implement this. It needs to be explained in a clear
and concise way in _one_ go, not spread over multiple emails. Probably
with ASCII art diagrams showing the structure.
If that isn't possible, then someone needs to provide a detailed
description of the hardware so that the subsystem maintainers get a
proper view of what this hardware is so they can advise. This is the
least preferable option due to the maintainer time it takes.
If neither of these two things happen, then I'm afraid all bets are
off for getting this into the kernel.