Lines Matching defs:spi
31 #include <linux/spi/spi.h>
32 #include <linux/spi/ads7846.h>
102 struct spi_device *spi;
237 dev_vdbg(&ts->spi->dev, "UP\n");
248 disable_irq(ts->spi->irq);
263 enable_irq(ts->spi->irq);
286 dev_err(&ts->spi->dev, "Failed to enable supply: %d\n", error);
356 struct spi_device *spi = to_spi_device(dev);
414 status = spi_sync(spi, &req->msg);
431 struct spi_device *spi = to_spi_device(dev);
450 status = spi_sync(spi, &req->msg);
471 ssize_t v = ads7846_read12_ser(&ts->spi->dev, \
551 static int ads784x_hwmon_register(struct spi_device *spi, struct ads7846 *ts)
557 dev_dbg(&spi->dev, "assuming 2.5V internal vREF\n");
565 dev_warn(&spi->dev,
573 ts->hwmon = hwmon_device_register_with_groups(&spi->dev, spi->modalias,
579 static void ads784x_hwmon_unregister(struct spi_device *spi,
587 static inline int ads784x_hwmon_register(struct spi_device *spi,
593 static inline void ads784x_hwmon_unregister(struct spi_device *spi,
820 error = spi_sync(ts->spi, m);
822 dev_err(&ts->spi->dev, "spi_sync --> %d\n", error);
876 dev_vdbg(&ts->spi->dev, "ignored %d pressure %d\n",
906 dev_vdbg(&ts->spi->dev, "DOWN\n");
913 dev_vdbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt);
961 if (device_may_wakeup(&ts->spi->dev))
962 enable_irq_wake(ts->spi->irq);
982 if (device_may_wakeup(&ts->spi->dev))
983 disable_irq_wake(ts->spi->irq);
996 static int ads7846_setup_pendown(struct spi_device *spi,
1015 dev_err(&spi->dev,
1027 dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n");
1051 time = NSEC_PER_SEC / ts->spi->max_speed_hz;
1087 packet->tx = devm_kzalloc(&ts->spi->dev, size, GFP_KERNEL);
1091 packet->rx = devm_kzalloc(&ts->spi->dev, size, GFP_KERNEL);
1218 static int ads7846_probe(struct spi_device *spi)
1227 if (!spi->irq) {
1228 dev_dbg(&spi->dev, "no IRQ?\n");
1233 if (spi->max_speed_hz > (125000 * SAMPLE_BITS)) {
1234 dev_err(&spi->dev, "f(sample) %d KHz?\n",
1235 (spi->max_speed_hz/SAMPLE_BITS)/1000);
1244 spi->bits_per_word = 8;
1245 spi->mode = SPI_MODE_0;
1246 err = spi_setup(spi);
1258 spi_set_drvdata(spi, ts);
1261 ts->spi = spi;
1267 pdata = dev_get_platdata(&spi->dev);
1269 pdata = ads7846_probe_dt(&spi->dev);
1301 err = ads7846_setup_pendown(spi, ts, pdata);
1311 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev));
1316 input_dev->dev.parent = &spi->dev;
1351 ts->reg = regulator_get(&spi->dev, "vcc");
1354 dev_err(&spi->dev, "unable to get regulator: %d\n", err);
1360 dev_err(&spi->dev, "unable to enable regulator: %d\n", err);
1367 err = request_threaded_irq(spi->irq, ads7846_hard_irq, ads7846_irq,
1368 irq_flags, spi->dev.driver->name, ts);
1370 dev_info(&spi->dev,
1371 "trying pin change workaround on irq %d\n", spi->irq);
1373 err = request_threaded_irq(spi->irq,
1375 irq_flags, spi->dev.driver->name, ts);
1379 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
1383 err = ads784x_hwmon_register(spi, ts);
1387 dev_info(&spi->dev, "touchscreen, irq %d\n", spi->irq);
1394 ads7845_read12_ser(&spi->dev, PWRDOWN);
1396 (void) ads7846_read12_ser(&spi->dev, READ_12BIT_SER(vaux));
1398 err = sysfs_create_group(&spi->dev.kobj, &ads784x_attr_group);
1406 device_init_wakeup(&spi->dev, pdata->wakeup);
1412 if (!dev_get_platdata(&spi->dev))
1413 devm_kfree(&spi->dev, (void *)pdata);
1418 sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group);
1420 ads784x_hwmon_unregister(spi, ts);
1422 free_irq(spi->irq, ts);
1440 static int ads7846_remove(struct spi_device *spi)
1442 struct ads7846 *ts = spi_get_drvdata(spi);
1444 sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group);
1447 free_irq(ts->spi->irq, ts);
1451 ads784x_hwmon_unregister(spi, ts);
1469 dev_dbg(&spi->dev, "unregistered touchscreen\n");
1488 MODULE_ALIAS("spi:ads7846");