Thread (22 messages) 22 messages, 5 authors, 2023-09-06

Re: [RFC PATCH net-next 8/8] dt-bindings: net: fsl,backplane-anlt: new binding document

From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: 2023-08-21 21:55:13
Also in: linux-devicetree, linux-phy, lkml

On Mon, Aug 21, 2023 at 11:10:27PM +0200, Andrew Lunn wrote:
quoted
But, there's already something else at those MDIO registers (where the
standard PHY ID location is), in the MMD that the AN/LT block responds to.
And that would be:

/* Auto-Negotiation Control and Status Registers are on page 0: 0x0 */
static const u16 mtip_lx2160a_an_regs[] = {
	[AN_CTRL] = 0,
	[AN_STAT] = 1,
	[AN_ADV_0] = 2, // overlaps with MII_PHYSID1
	[AN_ADV_1] = 3, // overlaps with MII_PHYSID2
	[AN_ADV_2] = 4,
	[AN_LPA_0] = 5, // overlaps with MDIO_DEVS1
	[AN_LPA_1] = 6, // overlaps with MDIO_DEVS2
	[AN_LPA_2] = 7,
	[AN_MS_CNT] = 8,
	[AN_ADV_XNP_0] = 9,
	[AN_ADV_XNP_1] = 10,
	[AN_ADV_XNP_2] = 11,
	[AN_LPA_XNP_0] = 12,
	[AN_LPA_XNP_1] = 13,
	[AN_LPA_XNP_2] = 14,
	[AN_BP_ETH_STAT] = 15,
};

The AN advertisement registers are kinda important to the operation of
the driver, so I wouldn't want to mask them with fake PHY ID values
reported by the MDIO controller.
O.K, not ideal. For C22, you could just put the ID values in the
compatible, which is enough to get a driver loaded which supports that
ID. But somebody recently commented that that does not work for C45. I
assume NXP has an OUI, and could allocate an ID to this device in
retrospect. So maybe it makes sense to make C45 work with an ID in the
compatible? And get the driver loaded that way?

	Andrew
There are 2 clarification questions that I can think of right now.
Maybe more later.

First: Compatible strings per C45 MMD? Drivers per C45 MMD? Is there
supposed to be an interest in that? I might end up needing it (see the
problem description in the cover letter, with PCS and AN/LT block merged
into the same MDIO address, but responding to separate MMDs)

Second: Suppose I add something like "ethernet-phy-ieee802.3-c45-idXXXX.XXXX".
Do I replace just this with that:

compatible = "fsl,lx2160a-backplane-anlt", "ethernet-phy-ieee802.3-c45";

or also this?

compatible = "fsl,lx2160a-secondary-anlt";


I suppose it would be just the first one, but going that route would IMO
just increase the dissonance between the description of primary and
secondary AN/LT blocks. They're the same IP blocks, don't they also have
the same fake PHY ID?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help