• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/touchscreen/

Lines Matching refs:spi

45 #include <linux/spi/spi.h>
46 #include <linux/spi/ad7877.h>
173 struct spi_device *spi;
218 static int ad7877_read(struct spi_device *spi, u16 reg)
240 status = spi_sync(spi, &req->msg);
248 static int ad7877_write(struct spi_device *spi, u16 reg, u16 val)
265 status = spi_sync(spi, &req->msg);
272 static int ad7877_read_adc(struct spi_device *spi, unsigned command)
274 struct ad7877 *ts = dev_get_drvdata(&spi->dev);
322 status = spi_sync(spi, &req->msg);
346 * The size of the averaging filter is programmable. (dev.platform_data, see linux/spi/ad7877.h)
396 status = spi_async(ts->spi, &ts->msg);
398 dev_err(&ts->spi->dev, "spi_sync --> %d\n", status);
424 disable_irq(ts->spi->irq);
447 enable_irq(ts->spi->irq);
457 ssize_t v = ad7877_read_adc(ts->spi, \
525 ad7877_write(ts->spi, AD7877_REG_DAC, (ts->dac << 4) | AD7877_DAC_CONF);
555 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
586 ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA |
612 static void ad7877_setup_ts_def_msg(struct spi_device *spi, struct ad7877 *ts)
624 ad7877_write(spi, AD7877_REG_CTRL2, ts->cmd_crtl2);
630 ad7877_write(spi, AD7877_REG_CTRL1, ts->cmd_crtl1);
658 static int __devinit ad7877_probe(struct spi_device *spi)
662 struct ad7877_platform_data *pdata = spi->dev.platform_data;
666 if (!spi->irq) {
667 dev_dbg(&spi->dev, "no IRQ?\n");
672 dev_dbg(&spi->dev, "no platform data?\n");
677 if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) {
678 dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz);
682 spi->bits_per_word = 16;
683 err = spi_setup(spi);
685 dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n");
696 dev_set_drvdata(&spi->dev, ts);
697 ts->spi = spi;
715 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev));
719 input_dev->dev.parent = &spi->dev;
737 ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE);
739 verify = ad7877_read(spi, AD7877_REG_SEQ1);
742 dev_err(&spi->dev, "%s: Failed to probe %s\n",
743 dev_name(&spi->dev), input_dev->name);
749 ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF);
751 ad7877_setup_ts_def_msg(spi, ts);
755 err = request_irq(spi->irq, ad7877_irq, IRQF_TRIGGER_FALLING,
756 spi->dev.driver->name, ts);
758 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
762 err = sysfs_create_group(&spi->dev.kobj, &ad7877_attr_group);
766 err = device_create_file(&spi->dev,
778 device_remove_file(&spi->dev,
781 sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group);
783 free_irq(spi->irq, ts);
787 dev_set_drvdata(&spi->dev, NULL);
791 static int __devexit ad7877_remove(struct spi_device *spi)
793 struct ad7877 *ts = dev_get_drvdata(&spi->dev);
795 sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group);
796 device_remove_file(&spi->dev,
800 free_irq(ts->spi->irq, ts);
805 dev_dbg(&spi->dev, "unregistered touchscreen\n");
806 dev_set_drvdata(&spi->dev, NULL);
812 static int ad7877_suspend(struct spi_device *spi, pm_message_t message)
814 struct ad7877 *ts = dev_get_drvdata(&spi->dev);
821 static int ad7877_resume(struct spi_device *spi)
823 struct ad7877 *ts = dev_get_drvdata(&spi->dev);
861 MODULE_ALIAS("spi:ad7877");