mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Wei Fang <wei.fang@nxp.com>
Cc: "davem@davemloft.net" <davem@davemloft.net>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
	"hkallweit1@gmail.com" <hkallweit1@gmail.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>
Subject: Re: [PATCH net] dt-bindings: net: tja11xx: fix the broken binding
Date: Tue, 3 Sep 2024 15:12:16 +0200	[thread overview]
Message-ID: <bc68a8c5-b3d7-4b87-a192-ba825bfafb50@lunn.ch> (raw)
In-Reply-To: <PAXPR04MB85100D0AEC1F73214B2087CB88932@PAXPR04MB8510.eurprd04.prod.outlook.com>

On Tue, Sep 03, 2024 at 02:17:04AM +0000, Wei Fang wrote:
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - ethernet-phy-id0180.dc40
> > > +      - ethernet-phy-id0180.dd00
> > > +      - ethernet-phy-id0180.dc80
> > > +      - ethernet-phy-id001b.b010
> > > +      - ethernet-phy-id001b.b031
> > 
> > This shows the issues with using a compatible. The driver has:
> > 
> > #define PHY_ID_TJA_1120                 0x001BB031
> > 
> >                 PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120),
> > 
> > which means the lowest nibble is ignored. The driver will quite happy also probe
> > for hardware using 001b.b030, 001b.b032, 001b.b033, ... 001b.b03f
> > 
> > Given you are inside NXP, do any of these exist? Was 001b.b030 too broken it
> > never left the QA lab? Are there any hardware issues which might result in a
> > new silicon stepping?
> 
> Yes, some of the revisions do exist, but the driver should be compatible with
> these different revisions.
> 
> For 001b.b030, I don't think it is broken, based on the latest data sheet of
> TJA1120 (Rev 0.6 26 January 2023), the PHY ID is 001b.b030. I don't know
> why it is defined as 001b.b031 in the driver, it may be a typo.

More likely, the board Radu Pirea has does have a device with this ID.

> > 
> > Does ethernet-phy-id0180.dc41 exist? etc.
> I think other TJA PHYs should also have different revisions.
> 
> Because the driver ignores the lowest nibble of the PHY ID, I think it is fine to
> define the lowest nibble of the PHY ID in these compatible strings as 0, and
> there is no need to list all revisions. And I don't know which revisions exist,
> because I haven't found or have no permission to download some PHY data
> sheets. I think what I can do is to modify "ethernet-phy-id001b.b031" to
> "ethernet-phy-id001b.b030".

You have to be careful here. Stating a compatible forces the PHY
ID. So if the compatible is "ethernet-phy-id001b.b031", but the board
actually has a "ethernet-phy-id001b.b030". phydev->phy_id is going to
be set to 0x001bb031. Any behaviour in the driver which look at that
revision nibble is then going to be wrong.

Maybe, now, today, that does not matter, because the driver never
looks at the revision. But it does mean developers might put the wrong
compatible in DT. And then when you do need to add code looking at the
revision, it does not always work, because there are some boards with
the wrong compatible in DT.

Listing all possible compatibles suggests to developers they need to
be careful and use the correct value. Or add a comment in the DT
bindings that not using a compatible is probably safer.

	Andrew


  reply	other threads:[~2024-09-03 13:12 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-02  6:33 Wei Fang
2024-09-02 16:20 ` Andrew Lunn
2024-09-03  2:17   ` Wei Fang
2024-09-03 13:12     ` Andrew Lunn [this message]
2024-09-04  1:20       ` Wei Fang
2024-09-04 14:57 ` Rob Herring
2024-09-05  1:23   ` Wei Fang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bc68a8c5-b3d7-4b87-a192-ba825bfafb50@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=wei.fang@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®