[PATCH v4 1/3] spi: add SPI_MOSI_IDLE_LOW mode bit

Fabio Estevam festevam at gmail.com
Wed May 17 15:43:41 PDT 2023


On Wed, May 17, 2023 at 7:30 PM Boerge Struempfel
<boerge.struempfel at gmail.com> wrote:
>
> Some spi controller switch the mosi line to high, whenever they are
> idle. This may not be desired in all use cases. For example neopixel
> leds can get confused and flicker due to misinterpreting the idle state.
> Therefore, we introduce a new spi-mode bit, with which the idle behaviour
> can be overwritten on a per device basis.
>
> Signed-off-by: Boerge Struempfel <boerge.struempfel at gmail.com>
>
>
> Link for versions:
>   v1 and v2: https://lore.kernel.org/linux-spi/20230511135632.78344-1-bstruempfel@ultratronik.de/
>   v3: https://lore.kernel.org/linux-spi/20230517103007.26287-1-boerge.struempfel@gmail.com/T/#t
>
> Changes from V3:
>   - Added missing paranthesis which caused builderrors
>
> Changes from V2:
>   - Removed the device-tree binding since this should not be managed by
>     the DT but by the device itself.
>   - Replaced all occurences of spi->chip_select with the corresponding
>     macro spi_get_chipselect(spi,0)
>
> Changes from V1:
>   - Added patch, introducing the new devicetree binding flag
>   - Split the generic spi part of the patch from the imx-spi specific
>     part
>   - Replaced SPI_CPOL and SPI_CPHA by the combined SPI_MODE_X_MASK bit
>     in the imx-spi.c modebits.
>   - Added the SPI_MOSI_IDLE_LOW bit to spidev

The change log should be placed below the --- line.

> ---
>  include/uapi/linux/spi/spi.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/uapi/linux/spi/spi.h b/include/uapi/linux/spi/spi.h
> index 9d5f58059703..ca56e477d161 100644
> --- a/include/uapi/linux/spi/spi.h
> +++ b/include/uapi/linux/spi/spi.h
> @@ -28,6 +28,7 @@
>  #define        SPI_RX_OCTAL            _BITUL(14)      /* receive with 8 wires */
>  #define        SPI_3WIRE_HIZ           _BITUL(15)      /* high impedance turnaround */
>  #define        SPI_RX_CPHA_FLIP        _BITUL(16)      /* flip CPHA on Rx only xfer */
> +#define SPI_MOSI_IDLE_LOW      _BITUL(17)      /* leave mosi line low when idle */

Should tools/spi/spidev_test.c be changed to include this new
mosi-idle-low option?



More information about the linux-arm-kernel mailing list