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