Re: [PATCH] spi: spi-geni-qcom: Use the new method of gpio CS control

From: Stephen Boyd
Date: Wed Dec 02 2020 - 19:48:27 EST


Quoting Stephen Boyd (2020-12-02 15:28:45)
> Quoting Alexandru M Stan (2020-12-02 14:18:20)
> > Unfortunately this patch makes my cros-ec (the main EC that used to
> > work even before my debugging) also fail to probe:
> > [ 0.839533] cros-ec-spi spi6.0: EC failed to respond in time
> > [ 1.040453] cros-ec-spi spi6.0: EC failed to respond in time
> > [ 1.040852] cros-ec-spi spi6.0: Cannot identify the EC: error -110
> > [ 1.040855] cros-ec-spi spi6.0: cannot register EC, fallback to spidev
> > [ 1.040942] cros-ec-spi: probe of spi6.0 failed with error -110
> >
> > I wasn't closely looking at this part closely when I was using my
> > other spi port with spidev, so this is why I haven't noticed it
> > before.
> > Doug suggests this might be a polarity issue. More scoping to be had.
> >
>
> Ah I see. It looks like the cs-gpios polarity is wrong for the DTS on
> sc7180. That's a patch that Doug has sent in for the qcom tree, commit
> 37dd4b777942 ("arm64: dts: qcom: sc7180: Provide pinconf for SPI to use
> GPIO for CS") and it is pending for the next release (v5.11). Doug says
> he will send in a fix for the DTS side, but this patch is still "good"
> as far as I can tell. It moves us to use gpio descriptors and also finds
> bugs like this in the DTS file that we would have missed otherwise
> because the legacy mode doesn't look at the polarity flags in DT.

And that is wrong. With even more investigation and Doug's eagle eyes it
seems that the cros-ec driver is overriding the spi::mode to clear out
the SPI_CS_HIGH bit that the spi core sets in there when using the gpio
descriptors. I'll send a patch for cros-ec-spi shortly.