Hello Ahmad, On Sat, Jul 30, 2022 at 11:10:34AM +0200, Ahmad Fatoum wrote: > Hello Oleksij, > > On 13.04.22 10:22, Oleksij Rempel wrote: > > +static int microchip_switch_probe(struct device_d *dev) > > +{ > > + struct ksz_switch *priv; > > + int ret = 0, gpio; > > + struct dsa_switch *ds; > > + > > + priv = xzalloc(sizeof(*priv)); > > + > > + dev->priv = priv; > > + priv->dev = dev; > > + > > + priv->spi = (struct spi_device *)dev->type_data; > > + priv->spi->mode = SPI_MODE_0; > > The kernel DSA driver configures SPI_MODE_3. > Is it intended that you configure the barebox driver differently? Yes. I wonted to investigate it deeper but didn't found time. According to the KSZ9477S data sheet, SPI TIMING diagram: we have following pictures: FIGURE 6-9: SPI DATA INPUT TIMING CLK ____/---\__/---\__/---\__/---\__/---\__ SDI {-----}{-----}{-----}{-----}{-----} This is CPOL=0 and CPHA=0 == SPI_MODE_0 And FIGURE 6-10: SPI DATA OUTPUT TIMING CLK ____/---\__/---\__/---\__/---\__/---\__ SDO {-----}{-----}{-----}{-----}{-----} (LOW-SPEED MODE) This is CPOL=0 and CPHA=0 == SPI_MODE_0 SDO {-----}{-----}{-----}{-----}{-----} (HIGH-SPEED MODE) This is CPOL=0 and CPHA=1 == SPI_MODE_1 If I see it correctly SPI_MODE_3 is not documented at all. And SPI_MODE_3 didn't worked for me, this is why I started investigating it :) Regards, Oleksij -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |