Hi Sergey, On Wed, Mar 31, 2021 at 11:00 AM Serge Semin <fancer.lancer@xxxxxxxxx> wrote: > > On Sun, Mar 28, 2021 at 06:59:28PM -0700, Brad Larson wrote: > > The Pensando Elba SoC uses a GPIO based chip select > > for two DW SPI busses with each bus having two > > chip selects. (...) > > +static void dw_spi_elba_set_cs(struct spi_device *spi, bool enable) > > +{ > > + struct dw_spi *dws = spi_master_get_devdata(spi->master); > > + > > > + if (!enable) { > > Please, be more attentive to the review-comments given to you before > resending a new patchset. One more time. This version of set_cs won't > work for Active-high CS. Each SPI controller working with GPIO-based > chip-select is marked as supporting that feature. So your DW > SPI controller won't be able to work correctly with SPI-devices > activated by active-high chip-select signal. Note default > dw_spi_set_cs() callback supports that. Thanks for your patience. It took me a while to understand what you were asking about regarding dw_spi_set_cs() due to the unnecessarily complicated function that was being used. The current implementation I propose for v3 patchset is this which as you identified handles cs active high/low properly. static void dw_spi_elba_set_cs(struct spi_device *spi, bool enable) { spi->chip_select = 0; dw_spi_set_cs(spi, enable); } Regards, Brad