[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAXyoMP9aoSbDkSJhSDJ68-F6qubeVmV08YgvQS1cTKJYS-spw@mail.gmail.com>
Date: Tue, 19 Aug 2025 01:06:00 +0800
From: Yangfl <mmyangfl@...il.com>
To: Andrew Lunn <andrew@...n.ch>
Cc: netdev@...r.kernel.org, Vladimir Oltean <olteanv@...il.com>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
Simon Horman <horms@...nel.org>, Russell King <linux@...linux.org.uk>, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [net-next v4 1/3] dt-bindings: net: dsa: yt921x: Add Motorcomm
YT921x switch support
On Tue, Aug 19, 2025 at 12:55 AM Andrew Lunn <andrew@...n.ch> wrote:
>
> > + motorcomm,switch-id:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: |
> > + Value selected by Pin SWITCH_ID_1 / SWITCH_ID_0.
> > +
> > + Up to 4 chips can share the same MII port ('reg' in DT) by giving
> > + different SWITCH_ID values. The default value should work if only one chip
> > + is present.
> > + enum: [0, 1, 2, 3]
> > + default: 0
>
> It is like getting blood from a stone.
>
> So what you are saying is that you have:
>
> mdio {
> #address-cells = <1>;
> #size-cells = <0>;
>
> switch@1d {
> compatible = "motorcomm,yt9215";
> /* default 0x1d, alternate 0x0 */
> reg = <0x1d>;
> motorcomm,switch-id = <0>;
> reset-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
> ...
> }
>
> switch@1d {
> compatible = "motorcomm,yt9215";
> reg = <0x1d>;
> motorcomm,switch-id = <1>;
> reset-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
> ...
> }
>
> switch@1d {
> compatible = "motorcomm,yt9215";
> reg = <0x1d>;
> motorcomm,switch-id = <2>;
> reset-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
> ...
> }
> }
>
> Have you tested this? My _guess_ is, it does not work.
>
> I'm not even sure DT allows you to have the same reg multiple times on
> one bus.
>
> I'm pretty sure the MDIO core does not allow multiple devices on one
> MDIO address. Each device is represented by a struct
> mdio_device. struct mii_bus has an array of 32 of these, one per
> address on the bus. You cannot have 4 of them for one address.
>
> Andrew
>
> ---
> pw-bot: cr
Of course I cannot test this, since I only have a stock device, as
mentioned in patch 3.
But I think this is what the vendor wants to do, if I got it right
from the datasheet.
If this is not acceptable anyway, I might as well remove switch-id
completely since I doubt if anyone would concat more than one switch
together in real world.
Powered by blists - more mailing lists