On Fri, Mar 13, 2026 at 03:53:51PM +0800, lizhi2@eswincomputing.com wrote: > From: Zhi Li > > Due to chip backend reasons, there is already an approximately 4-5 ns > skew between the RX clock and data of the eth1 MAC controller inside > the silicon. > > For 1000M, the RX clock must be inverted since it is not possible to > meet the RGMII timing requirements using only rx-internal-delay-ps on > the MAC together with the standard 2 ns delay on the PHY. Therefore, > even on a properly designed board, eth1 still requires RX clock > inversion. > > This behaviour effectively breaks the RGMII timing assumptions at the > SoC level. > > For the TX path of eth1, there is also a skew between the TX clock > and data on the MAC controller inside the silicon. This skew happens > to be approximately 2 ns. Therefore, it can be considered that the > 2 ns delay of TX is provided by the MAC, so the TX is compliant with > the RGMII standard. > > For 10/100 operation, the approximately 4-5 ns skew in the chip does > not break the standard. The RGMII timing table (Section 3.3) specifies > that for 10/100 operation the maximum value is unspecified: > https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/20655/1/RGMIIv2_0_final_hp.pdf > > Due to the eth1 silicon behavior described above, a new compatible > string "eswin,eic7700-qos-eth-clk-inversion" is added to the device > tree. This allows the driver to handle the differences between eth1 > and eth0 through dedicated logic. > > The rx-internal-delay-ps and tx-internal-delay-ps properties now use > minimum and maximum constraints to reflect the actual hardware delay > range (0-2540 ps) applied in 20 ps steps. This relaxes the binding > validation compared to the previous enum-based definition and avoids > regressions for existing DTBs while keeping the same hardware limits. > > Treat the RX/TX internal delay properties as optional, board-specific > tuning knobs and remove them from the example to avoid encouraging > their use. > > In addition, the binding now includes additional background information > about the HSP CSR registers accessed by the MAC. The TXD and RXD delay > control registers are included so the driver can explicitly clear any > residual configuration left by the bootloader. > > Background reference for the High-Speed Subsystem and HSP CSR block is > available in Chapter 10 ("High-Speed Interface") of the EIC7700X SoC > Technical Reference Manual, Part 4 > (EIC7700X_SoC_Technical_Reference_Manual_Part4.pdf): > https://github.com/eswincomputing/EIC7700X-SoC-Technical-Reference-Manual/releases > > There are currently no in-tree users of the EIC7700 Ethernet driver, so > these changes are safe. > > Fixes: 888bd0eca93c ("dt-bindings: ethernet: eswin: Document for EIC7700 SoC") > Signed-off-by: Zhi Li Krzysztof might not yet be happy with the compatible naming, but from my pov: Acked-by: Conor Dooley