Merge tag 'omap-for-v5.12/fixes-rc1-signed' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / include / uapi / linux / spi / spi.h
1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2 #ifndef _UAPI_SPI_H
3 #define _UAPI_SPI_H
4
5 #include <linux/const.h>
6
7 #define SPI_CPHA                _BITUL(0)       /* clock phase */
8 #define SPI_CPOL                _BITUL(1)       /* clock polarity */
9
10 #define SPI_MODE_0              (0|0)           /* (original MicroWire) */
11 #define SPI_MODE_1              (0|SPI_CPHA)
12 #define SPI_MODE_2              (SPI_CPOL|0)
13 #define SPI_MODE_3              (SPI_CPOL|SPI_CPHA)
14 #define SPI_MODE_X_MASK         (SPI_CPOL|SPI_CPHA)
15
16 #define SPI_CS_HIGH             _BITUL(2)       /* chipselect active high? */
17 #define SPI_LSB_FIRST           _BITUL(3)       /* per-word bits-on-wire */
18 #define SPI_3WIRE               _BITUL(4)       /* SI/SO signals shared */
19 #define SPI_LOOP                _BITUL(5)       /* loopback mode */
20 #define SPI_NO_CS               _BITUL(6)       /* 1 dev/bus, no chipselect */
21 #define SPI_READY               _BITUL(7)       /* slave pulls low to pause */
22 #define SPI_TX_DUAL             _BITUL(8)       /* transmit with 2 wires */
23 #define SPI_TX_QUAD             _BITUL(9)       /* transmit with 4 wires */
24 #define SPI_RX_DUAL             _BITUL(10)      /* receive with 2 wires */
25 #define SPI_RX_QUAD             _BITUL(11)      /* receive with 4 wires */
26 #define SPI_CS_WORD             _BITUL(12)      /* toggle cs after each word */
27 #define SPI_TX_OCTAL            _BITUL(13)      /* transmit with 8 wires */
28 #define SPI_RX_OCTAL            _BITUL(14)      /* receive with 8 wires */
29 #define SPI_3WIRE_HIZ           _BITUL(15)      /* high impedance turnaround */
30
31 /*
32  * All the bits defined above should be covered by SPI_MODE_USER_MASK.
33  * The SPI_MODE_USER_MASK has the SPI_MODE_KERNEL_MASK counterpart in
34  * 'include/linux/spi/spi.h'. The bits defined here are from bit 0 upwards
35  * while in SPI_MODE_KERNEL_MASK they are from the other end downwards.
36  * These bits must not overlap. A static assert check should make sure of that.
37  * If adding extra bits, make sure to increase the bit index below as well.
38  */
39 #define SPI_MODE_USER_MASK      (_BITUL(16) - 1)
40
41 #endif /* _UAPI_SPI_H */