On Tue, Nov 12, 2024 at 4:02 PM Krishna chaitanya chundru <quic_krichai@xxxxxxxxxxx> wrote: > > QPS615 is the PCIe switch which has one upstream and three downstream > ports. To one of the downstream ports ethernet MAC is connected as endpoint > device. Other two downstream ports are supposed to connect to external > device. One Host can connect to QPS615 by upstream port. QPS615 switch > needs to be configured after powering on and before PCIe link was up. > > The PCIe controller driver already enables link training at the host side > even before qps615 driver probe happens, due to this when driver enables > power to the switch it participates in the link training and PCIe link > may come up before configuring the switch through i2c. To prevent the > host from participating in link training, disable link training on the > host side to ensure the link does not come up before the switch is > configured via I2C. > > Based up on dt property and type of the port, qps615 is configured > through i2c. > > Signed-off-by: Krishna chaitanya chundru <quic_krichai@xxxxxxxxxxx> > --- Krishna, This looks really good thanks. One nit: I'd rename qps615_pwrctl_power_on() to something else as most of its code does configure the switch, not power it up. Maybe qps615_pwrctl_bring_up()? With that and the build issue fixed: Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> I'll test it once it compiles. Bart