Re: [PATCH 15/16] misc: lan966x_pci: Add dtso nodes in order to support SFPs

From: Andrew Lunn
Date: Wed Apr 09 2025 - 10:05:36 EST


On Wed, Apr 09, 2025 at 09:44:25AM +0200, Thomas Petazzoni wrote:
> On Tue Apr 8, 2025 at 5:38 PM CEST, Andrew Lunn wrote:
>
> > "HW blocks inside an SoC." That would be the SoC .dtsi file. Anything
> > outside of the SoC is in the .dts file. OEM vendors take the SoC,
> > build a board around it, and name there .dts file after the board,
> > describing how the board components are connected to the SoC.
> >
> > So..
> >
> > So by PCI endpoint, you mean the PCIe chip? So it sounds like there
> > should be a .dtsi file describing the chip.
> >
> > Everything outside of the chip, like the SFP cages, are up to the
> > vendor building the board. I would say that should be described in a
> > .dtso file, which describes how the board components are connected to
> > the PCIe chip? And that .dtso file should be named after the board,
> > since there are going to many of them, from different OEM vendors.
>
> Indeed, that makes sense. So if I get correctly your suggestion,
> instead of having a .dtso that describes everything, it should be
> split between:
>
> - A .dtsi that describes what's inside the LAN996x when used in PCI
> endpoint mode
>
> - A .dtso that includes the above .dtsi, and that describes what on
> the PCI board around the LAN966x.
>
> Correct?

Yes.

And you need some way to map the PCI ID to the correct .dtso file.
Maybe that is just a lookup table in the driver, or maybe you can pack
the .dtso file into a kernel module with the correct
MODULE_DEVICE_TABLE(pci, ...) so that PCI probing pulls in the
specific driver module with the .dtso, which via dependencies pulls in
the core driver which can actually make use of the .dtso?

Andrew