Hi Andrew, On Fri, Jun 09, 2017 at 04:49:36PM +0200, Andrew Lunn wrote: > On Fri, Jun 09, 2017 at 04:09:22PM +0200, Antoine Tenart wrote: > > > > The MDIO/xMDIO registers are embedded into the network controller. The > > mvmdio driver was created at first to abstract this functionality > > outside the network controller driver because it is shared between all > > ports and used in different IPs. So it's not really devices per say. > > > > Looking at the datasheet/schematics there are two hardware buses, one > > for c22 and one for c45. So we should keep two separate nodes to > > describe the two interfaces. From what I read c45 is backward > > compatible with c22 so the xSMI interface should be capable to speak to > > c22 PHYs as well. > > The on the wire protocol of c45 is backwards compatible with c22, in > that a c22 device will not get confused by a c45 transaction on the > bus. A c22 device will just ignore it. You cannot talk to a c22 device > using c45.
I see. > From what you are saying, you have a hardware block generating c45 > transactions and a hardware block which generates c22 transactions. > What is not clear to me is if these two hardware blocks are using the > same physical MDC/MDIO pins, i.e. there is just one MDIO bus to the > outside world, or are there two busses? There are two busses, one generating c22 transactions and one generating c45 transactions. Each bus has its own MDC/MDIO pins. > > And by looking at the datasheet this seems possible, although it's > > not completely clear. But anyway this wouldn't impact the dt > > bindings. > > What i'm worried about is there being one set of MDC/MDIO lines. You > should not expose that to linux as two mdio busses. It is one bus. > > The phylib will poll each phy on the bus once per second to check its > state. The phylib serialises the read/writes at a bus level. So if you > have one physical bus registered as two logical bus, at some point you > are going to get simultaneous read/writes, and you are going to need a > mutex low down to serialise this for physical bus access. > > And in the end, this would affect the dt binding. If it is one > physical bus, you want one binding representing both c22 and c45 > transactions. Of course. See above. Thanks! Antoine -- Antoine Ténart, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
signature.asc
Description: PGP signature