blob: 2a9320e1bc2c130841344ae88f2e0734c4735cc8 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef SPIDEV_H
8#define SPIDEV_H
9#include <linux/types.h>
Christopher Ferris1308ad32017-11-14 17:32:13 -080010#include <linux/ioctl.h>
Christopher Ferrisa9750ed2021-05-03 14:02:49 -070011#include <linux/spi/spi.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070012#define SPI_IOC_MAGIC 'k'
Ben Cheng655a7c02013-10-16 16:09:24 -070013struct spi_ioc_transfer {
Tao Baod7db5942015-01-28 10:07:51 -080014 __u64 tx_buf;
15 __u64 rx_buf;
16 __u32 len;
Tao Baod7db5942015-01-28 10:07:51 -080017 __u32 speed_hz;
18 __u16 delay_usecs;
19 __u8 bits_per_word;
20 __u8 cs_change;
Tao Baod7db5942015-01-28 10:07:51 -080021 __u8 tx_nbits;
22 __u8 rx_nbits;
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -070023 __u8 word_delay_usecs;
24 __u8 pad;
Ben Cheng655a7c02013-10-16 16:09:24 -070025};
Tao Baod7db5942015-01-28 10:07:51 -080026#define SPI_MSGSIZE(N) ((((N) * (sizeof(struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) ? ((N) * (sizeof(struct spi_ioc_transfer))) : 0)
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)])
Ben Cheng655a7c02013-10-16 16:09:24 -070028#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8)
29#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8)
30#define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, __u8)
31#define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, __u8)
Ben Cheng655a7c02013-10-16 16:09:24 -070032#define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, __u8)
33#define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, __u8)
34#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32)
35#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32)
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070036#define SPI_IOC_RD_MODE32 _IOR(SPI_IOC_MAGIC, 5, __u32)
37#define SPI_IOC_WR_MODE32 _IOW(SPI_IOC_MAGIC, 5, __u32)
Ben Cheng655a7c02013-10-16 16:09:24 -070038#endif