Lines Matching defs:spi
31 #include <linux/spi/spi.h>
32 #include <linux/spi/ad7877.h>
160 struct spi_device *spi;
199 static int ad7877_read(struct spi_device *spi, u16 reg)
222 status = spi_sync(spi, &req->msg);
230 static int ad7877_write(struct spi_device *spi, u16 reg, u16 val)
247 status = spi_sync(spi, &req->msg);
254 static int ad7877_read_adc(struct spi_device *spi, unsigned command)
256 struct ad7877 *ts = spi_get_drvdata(spi);
309 status = spi_sync(spi, &req->msg);
333 * The size of the averaging filter is programmable. (dev.platform_data, see linux/spi/ad7877.h)
390 error = spi_sync(ts->spi, &ts->msg);
392 dev_err(&ts->spi->dev, "spi_sync --> %d\n", error);
414 disable_irq(ts->spi->irq);
434 enable_irq(ts->spi->irq);
444 ssize_t v = ad7877_read_adc(ts->spi, \
512 ad7877_write(ts->spi, AD7877_REG_DAC, (ts->dac << 4) | AD7877_DAC_CONF);
542 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
573 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
618 static void ad7877_setup_ts_def_msg(struct spi_device *spi, struct ad7877 *ts)
630 ad7877_write(spi, AD7877_REG_CTRL2, ts->cmd_crtl2);
636 ad7877_write(spi, AD7877_REG_CTRL1, ts->cmd_crtl1);
667 static int ad7877_probe(struct spi_device *spi)
671 struct ad7877_platform_data *pdata = dev_get_platdata(&spi->dev);
675 if (!spi->irq) {
676 dev_dbg(&spi->dev, "no IRQ?\n");
681 dev_dbg(&spi->dev, "no platform data?\n");
686 if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) {
687 dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz);
691 spi->bits_per_word = 16;
692 err = spi_setup(spi);
694 dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n");
698 ts = devm_kzalloc(&spi->dev, sizeof(struct ad7877), GFP_KERNEL);
702 input_dev = devm_input_allocate_device(&spi->dev);
706 err = devm_add_action_or_reset(&spi->dev, ad7877_disable, ts);
710 spi_set_drvdata(spi, ts);
711 ts->spi = spi;
729 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev));
733 input_dev->dev.parent = &spi->dev;
753 ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE);
755 verify = ad7877_read(spi, AD7877_REG_SEQ1);
758 dev_err(&spi->dev, "%s: Failed to probe %s\n",
759 dev_name(&spi->dev), input_dev->name);
764 ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF);
766 ad7877_setup_ts_def_msg(spi, ts);
770 err = devm_request_threaded_irq(&spi->dev, spi->irq, NULL, ad7877_irq,
772 spi->dev.driver->name, ts);
774 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
778 err = devm_device_add_group(&spi->dev, &ad7877_attr_group);
822 MODULE_ALIAS("spi:ad7877");