9 #include <linux/input.h>
12 #include <linux/module.h>
16 #define AD7879_DEVID 0x7A
18 #define MAX_SPI_FREQ_HZ 5000000
19 #define AD7879_CMD_MAGIC 0xE000
20 #define AD7879_CMD_READ (1 << 10)
21 #define AD7879_CMD(reg) (AD7879_CMD_MAGIC | ((reg) & 0xF))
22 #define AD7879_WRITECMD(reg) (AD7879_CMD(reg))
23 #define AD7879_READCMD(reg) (AD7879_CMD(reg) | AD7879_CMD_READ)
37 u16 *_rx_buf = _rx_buf;
41 xfers = spi_data = kzalloc(
sizeof(*xfers) * (count + 2),
GFP_KERNEL);
45 spi_message_init(&msg);
60 spi_message_add_tail(&xfers[0], &msg);
69 spi_message_add_tail(&xfers[idx], &msg);
75 _rx_buf[0] = command[2];
82 static int ad7879_spi_multi_read(
struct device *
dev,
90 static int ad7879_spi_read(
struct device *dev,
u8 reg)
108 .read = ad7879_spi_read,
109 .multi_read = ad7879_spi_multi_read,
110 .write = ad7879_spi_write,
127 dev_dbg(&spi->
dev,
"spi master doesn't support 16 bits/word\n");
135 spi_set_drvdata(spi, ts);
142 struct ad7879 *ts = spi_get_drvdata(spi);
145 spi_set_drvdata(spi,
NULL);
150 static struct spi_driver ad7879_spi_driver = {
156 .probe = ad7879_spi_probe,