Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
0002 #ifndef _UAPI_SPI_H
0003 #define _UAPI_SPI_H
0004 
0005 #include <linux/const.h>
0006 
0007 #define SPI_CPHA        _BITUL(0)   /* clock phase */
0008 #define SPI_CPOL        _BITUL(1)   /* clock polarity */
0009 
0010 #define SPI_MODE_0      (0|0)       /* (original MicroWire) */
0011 #define SPI_MODE_1      (0|SPI_CPHA)
0012 #define SPI_MODE_2      (SPI_CPOL|0)
0013 #define SPI_MODE_3      (SPI_CPOL|SPI_CPHA)
0014 #define SPI_MODE_X_MASK     (SPI_CPOL|SPI_CPHA)
0015 
0016 #define SPI_CS_HIGH     _BITUL(2)   /* chipselect active high? */
0017 #define SPI_LSB_FIRST       _BITUL(3)   /* per-word bits-on-wire */
0018 #define SPI_3WIRE       _BITUL(4)   /* SI/SO signals shared */
0019 #define SPI_LOOP        _BITUL(5)   /* loopback mode */
0020 #define SPI_NO_CS       _BITUL(6)   /* 1 dev/bus, no chipselect */
0021 #define SPI_READY       _BITUL(7)   /* slave pulls low to pause */
0022 #define SPI_TX_DUAL     _BITUL(8)   /* transmit with 2 wires */
0023 #define SPI_TX_QUAD     _BITUL(9)   /* transmit with 4 wires */
0024 #define SPI_RX_DUAL     _BITUL(10)  /* receive with 2 wires */
0025 #define SPI_RX_QUAD     _BITUL(11)  /* receive with 4 wires */
0026 #define SPI_CS_WORD     _BITUL(12)  /* toggle cs after each word */
0027 #define SPI_TX_OCTAL        _BITUL(13)  /* transmit with 8 wires */
0028 #define SPI_RX_OCTAL        _BITUL(14)  /* receive with 8 wires */
0029 #define SPI_3WIRE_HIZ       _BITUL(15)  /* high impedance turnaround */
0030 #define SPI_RX_CPHA_FLIP    _BITUL(16)  /* flip CPHA on Rx only xfer */
0031 
0032 /*
0033  * All the bits defined above should be covered by SPI_MODE_USER_MASK.
0034  * The SPI_MODE_USER_MASK has the SPI_MODE_KERNEL_MASK counterpart in
0035  * 'include/linux/spi/spi.h'. The bits defined here are from bit 0 upwards
0036  * while in SPI_MODE_KERNEL_MASK they are from the other end downwards.
0037  * These bits must not overlap. A static assert check should make sure of that.
0038  * If adding extra bits, make sure to increase the bit index below as well.
0039  */
0040 #define SPI_MODE_USER_MASK  (_BITUL(17) - 1)
0041 
0042 #endif /* _UAPI_SPI_H */