[PATCH v2 1/5] arm64: dts: lx2160a: transition to device-specific SerDes compatible strings

Ioana Ciornei ioana.ciornei at nxp.com
Fri Jul 3 04:42:39 PDT 2026


I just realized that I somehow didn't reply-all to this message and only
responded to Frank. My response is copied below now.

> > > > +
> > > > +#include "fsl-lx2160a-rev2.dtsi"
> > > > +
> > > > +&serdes_1 {
> > > > +       compatible = "fsl,lx2162a-serdes1", "fsl,lynx-28g";
> > > > +
> > > > +       /delete-node/ phy at 0;
> > > > +       /delete-node/ phy at 1;
> > > > +       /delete-node/ phy at 2;
> > > > +       /delete-node/ phy at 3;
> > >
> > > Now, do not perfer delete-node. if ver2 is not include phy at 0, ...
> > >
> > > create ver2 files, let ver2 include it. Now most people like A + B, not
> > > A - B.
> > >
> >
> > I am not sure I follow what you say about the ver2 files - are you
> > referring to -rev2 or LX2162A?
> >
> > The LX2162A is a version of the LX2160A SoC, also known as "LX2-Lite".
> > And the main difference is that the LX2162A does not have the 3rd SerDes
> > block and only 4 SerDes lanes on the first block.
> 
> If it is the same die and it is disable by fuse box. I suggest leave it here
> now because default it is disabled and try to access-control-cell in future.
> 
> https://lore.kernel.org/imx/20241212-imx-ocotp-v1-1-198bb0af86a0@nxp.com/
> 
> That these nodes can be dymatically disabled it.
> 
> If it is difference die, it should lx2160a.dtsi include lx2-lite. you
> can rename old lx2160a.dtsi to lx2-lites.dtsi. You need adjust file name
> and I just said overwhole method.

LX2160A and LX2162A are different dies but the process is not that
simple as just a rename of the fsl-lx2160a.dtsi. First of all, because
the LX2162A has the same PCIe controller as LX2160A Rev2
(fsl-lx2160a-rev2.dtsi) and not LX2160A Rev1 (fsl-lx2160a.dtsi), so if
there would be a rename it should be fsl-lx2160a-rev2.dtsi ->
fsl-lx2162a.dtsi.

But even that rename is problematic. SerDes nodes currently live in the
fsl-lx2160a.dtsi (common for Rev1 and Rev2) which would mean that
fsl-lx2162a.dtsi would still inherit all the SerDes nodes, even the
SerDes block #3 not present on LX2162A. I can combat this by keeping
only the common SerDes nodes in fsl-lx2160a.dtsi and add the necessary
extra SerDes nodes in fsl-lx2160a-rev2.dtsi. But this would leave the
Rev1 dtsi without all the necessary nodes, which is not ok.

In this context, I think that if there is a need to not use delete-node
I need to come up with some kind of a scheme like below:

fsl-lx216x.dtsi			---> fsl-lx2160a.dtsi (PCIe gen4, 3 SerDes blocks)
(no PCIe, no SerDes)		---> fsl-lx2160a-rev2.dtsi (PCIe gen3, 3 SerDes blocks)
				---> fsl-lx2162a.dtsi (PCIe gen3, 2 SerDes blocks)

For the "PCIe gen4", "PCIe gen3", "3 SerDes nodes" and "2 SerDes blocks"
above I would add independent .dtsi files that can be included as
needed, so that there is no dt duplication.

That is why I said that there would be a lot of unnecessary churn.

Ioana



More information about the linux-arm-kernel mailing list