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);
311 status = spi_sync(spi, &req->msg);
335 * The size of the averaging filter is programmable. (dev.platform_data, see linux/spi/ad7877.h)
392 error = spi_sync(ts->spi, &ts->msg);
394 dev_err(&ts->spi->dev, "spi_sync --> %d\n", error);
416 disable_irq(ts->spi->irq);
436 enable_irq(ts->spi->irq);
446 ssize_t v = ad7877_read_adc(ts->spi, \
514 ad7877_write(ts->spi, AD7877_REG_DAC, (ts->dac << 4) | AD7877_DAC_CONF);
544 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
575 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
620 static void ad7877_setup_ts_def_msg(struct spi_device *spi, struct ad7877 *ts)
632 ad7877_write(spi, AD7877_REG_CTRL2, ts->cmd_crtl2);
638 ad7877_write(spi, AD7877_REG_CTRL1, ts->cmd_crtl1);
669 static int ad7877_probe(struct spi_device *spi)
673 struct ad7877_platform_data *pdata = dev_get_platdata(&spi->dev);
677 if (!spi->irq) {
678 dev_dbg(&spi->dev, "no IRQ?\n");
683 dev_dbg(&spi->dev, "no platform data?\n");
688 if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) {
689 dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz);
693 spi->bits_per_word = 16;
694 err = spi_setup(spi);
696 dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n");
700 ts = devm_kzalloc(&spi->dev, sizeof(struct ad7877), GFP_KERNEL);
704 input_dev = devm_input_allocate_device(&spi->dev);
708 err = devm_add_action_or_reset(&spi->dev, ad7877_disable, ts);
712 spi_set_drvdata(spi, ts);
713 ts->spi = spi;
731 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev));
735 input_dev->dev.parent = &spi->dev;
755 ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE);
757 verify = ad7877_read(spi, AD7877_REG_SEQ1);
760 dev_err(&spi->dev, "%s: Failed to probe %s\n",
761 dev_name(&spi->dev), input_dev->name);
766 ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF);
768 ad7877_setup_ts_def_msg(spi, ts);
772 err = devm_request_threaded_irq(&spi->dev, spi->irq, NULL, ad7877_irq,
774 spi->dev.driver->name, ts);
776 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
780 err = devm_device_add_group(&spi->dev, &ad7877_attr_group);
824 MODULE_ALIAS("spi:ad7877");