Lines Matching refs:spi

174 	struct spi_device	*spi;  member
213 static int ad7877_read(struct spi_device *spi, u16 reg) in ad7877_read() argument
236 status = spi_sync(spi, &req->msg); in ad7877_read()
244 static int ad7877_write(struct spi_device *spi, u16 reg, u16 val) in ad7877_write() argument
261 status = spi_sync(spi, &req->msg); in ad7877_write()
268 static int ad7877_read_adc(struct spi_device *spi, unsigned command) in ad7877_read_adc() argument
270 struct ad7877 *ts = spi_get_drvdata(spi); in ad7877_read_adc()
323 status = spi_sync(spi, &req->msg); in ad7877_read_adc()
404 error = spi_sync(ts->spi, &ts->msg); in ad7877_irq()
406 dev_err(&ts->spi->dev, "spi_sync --> %d\n", error); in ad7877_irq()
426 disable_irq(ts->spi->irq); in ad7877_disable()
446 enable_irq(ts->spi->irq); in ad7877_enable()
456 ssize_t v = ad7877_read_adc(ts->spi, \
524 ad7877_write(ts->spi, AD7877_REG_DAC, (ts->dac << 4) | AD7877_DAC_CONF); in ad7877_dac_store()
554 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA | in ad7877_gpio3_store()
585 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA | in ad7877_gpio4_store()
630 static void ad7877_setup_ts_def_msg(struct spi_device *spi, struct ad7877 *ts) in ad7877_setup_ts_def_msg() argument
642 ad7877_write(spi, AD7877_REG_CTRL2, ts->cmd_crtl2); in ad7877_setup_ts_def_msg()
648 ad7877_write(spi, AD7877_REG_CTRL1, ts->cmd_crtl1); in ad7877_setup_ts_def_msg()
679 static int ad7877_probe(struct spi_device *spi) in ad7877_probe() argument
683 struct ad7877_platform_data *pdata = dev_get_platdata(&spi->dev); in ad7877_probe()
687 if (!spi->irq) { in ad7877_probe()
688 dev_dbg(&spi->dev, "no IRQ?\n"); in ad7877_probe()
693 dev_dbg(&spi->dev, "no platform data?\n"); in ad7877_probe()
698 if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) { in ad7877_probe()
699 dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz); in ad7877_probe()
703 spi->bits_per_word = 16; in ad7877_probe()
704 err = spi_setup(spi); in ad7877_probe()
706 dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); in ad7877_probe()
717 spi_set_drvdata(spi, ts); in ad7877_probe()
718 ts->spi = spi; in ad7877_probe()
736 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); in ad7877_probe()
740 input_dev->dev.parent = &spi->dev; in ad7877_probe()
760 ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE); in ad7877_probe()
762 verify = ad7877_read(spi, AD7877_REG_SEQ1); in ad7877_probe()
765 dev_err(&spi->dev, "%s: Failed to probe %s\n", in ad7877_probe()
766 dev_name(&spi->dev), input_dev->name); in ad7877_probe()
772 ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF); in ad7877_probe()
774 ad7877_setup_ts_def_msg(spi, ts); in ad7877_probe()
778 err = request_threaded_irq(spi->irq, NULL, ad7877_irq, in ad7877_probe()
780 spi->dev.driver->name, ts); in ad7877_probe()
782 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); in ad7877_probe()
786 err = sysfs_create_group(&spi->dev.kobj, &ad7877_attr_group); in ad7877_probe()
797 sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group); in ad7877_probe()
799 free_irq(spi->irq, ts); in ad7877_probe()
806 static int ad7877_remove(struct spi_device *spi) in ad7877_remove() argument
808 struct ad7877 *ts = spi_get_drvdata(spi); in ad7877_remove()
810 sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group); in ad7877_remove()
813 free_irq(ts->spi->irq, ts); in ad7877_remove()
818 dev_dbg(&spi->dev, "unregistered touchscreen\n"); in ad7877_remove()