Lines Matching refs:spi
100 struct spi_device *spi; member
210 disable_irq(ts->spi->irq); in ads7846_stop()
221 enable_irq(ts->spi->irq); in ads7846_restart()
244 dev_err(&ts->spi->dev, "Failed to enable supply: %d\n", error); in __ads7846_enable()
314 struct spi_device *spi = to_spi_device(dev); in ads7846_read12_ser() local
371 status = spi_sync(spi, &req->msg); in ads7846_read12_ser()
388 struct spi_device *spi = to_spi_device(dev); in ads7845_read12_ser() local
407 status = spi_sync(spi, &req->msg); in ads7845_read12_ser()
428 ssize_t v = ads7846_read12_ser(&ts->spi->dev, \
508 static int ads784x_hwmon_register(struct spi_device *spi, struct ads7846 *ts) in ads784x_hwmon_register() argument
514 dev_dbg(&spi->dev, "assuming 2.5V internal vREF\n"); in ads784x_hwmon_register()
522 dev_warn(&spi->dev, in ads784x_hwmon_register()
530 ts->hwmon = hwmon_device_register_with_groups(&spi->dev, spi->modalias, in ads784x_hwmon_register()
538 static void ads784x_hwmon_unregister(struct spi_device *spi, in ads784x_hwmon_unregister() argument
546 static inline int ads784x_hwmon_register(struct spi_device *spi, in ads784x_hwmon_register() argument
552 static inline void ads784x_hwmon_unregister(struct spi_device *spi, in ads784x_hwmon_unregister() argument
707 error = spi_sync(ts->spi, m); in ads7846_read_state()
709 dev_err(&ts->spi->dev, "spi_sync --> %d\n", error); in ads7846_read_state()
781 dev_vdbg(&ts->spi->dev, "x/y: %d/%d, PD %d\n", x, y, Rt); in ads7846_report_state()
800 dev_vdbg(&ts->spi->dev, "ignored %d pressure %d\n", in ads7846_report_state()
833 dev_vdbg(&ts->spi->dev, "DOWN\n"); in ads7846_report_state()
841 dev_vdbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt); in ads7846_report_state()
880 dev_vdbg(&ts->spi->dev, "UP\n"); in ads7846_irq()
897 if (device_may_wakeup(&ts->spi->dev)) in ads7846_suspend()
898 enable_irq_wake(ts->spi->irq); in ads7846_suspend()
918 if (device_may_wakeup(&ts->spi->dev)) in ads7846_resume()
919 disable_irq_wake(ts->spi->irq); in ads7846_resume()
932 static int ads7846_setup_pendown(struct spi_device *spi, in ads7846_setup_pendown() argument
951 dev_err(&spi->dev, in ads7846_setup_pendown()
963 dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); in ads7846_setup_pendown()
1251 static int ads7846_probe(struct spi_device *spi) in ads7846_probe() argument
1260 if (!spi->irq) { in ads7846_probe()
1261 dev_dbg(&spi->dev, "no IRQ?\n"); in ads7846_probe()
1266 if (spi->max_speed_hz > (125000 * SAMPLE_BITS)) { in ads7846_probe()
1267 dev_err(&spi->dev, "f(sample) %d KHz?\n", in ads7846_probe()
1268 (spi->max_speed_hz/SAMPLE_BITS)/1000); in ads7846_probe()
1277 spi->bits_per_word = 8; in ads7846_probe()
1278 spi->mode = SPI_MODE_0; in ads7846_probe()
1279 err = spi_setup(spi); in ads7846_probe()
1291 spi_set_drvdata(spi, ts); in ads7846_probe()
1294 ts->spi = spi; in ads7846_probe()
1300 pdata = dev_get_platdata(&spi->dev); in ads7846_probe()
1302 pdata = ads7846_probe_dt(&spi->dev); in ads7846_probe()
1337 err = ads7846_setup_pendown(spi, ts, pdata); in ads7846_probe()
1347 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); in ads7846_probe()
1352 input_dev->dev.parent = &spi->dev; in ads7846_probe()
1369 ts->reg = regulator_get(&spi->dev, "vcc"); in ads7846_probe()
1372 dev_err(&spi->dev, "unable to get regulator: %d\n", err); in ads7846_probe()
1378 dev_err(&spi->dev, "unable to enable regulator: %d\n", err); in ads7846_probe()
1385 err = request_threaded_irq(spi->irq, ads7846_hard_irq, ads7846_irq, in ads7846_probe()
1386 irq_flags, spi->dev.driver->name, ts); in ads7846_probe()
1388 dev_info(&spi->dev, in ads7846_probe()
1389 "trying pin change workaround on irq %d\n", spi->irq); in ads7846_probe()
1391 err = request_threaded_irq(spi->irq, in ads7846_probe()
1393 irq_flags, spi->dev.driver->name, ts); in ads7846_probe()
1397 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); in ads7846_probe()
1401 err = ads784x_hwmon_register(spi, ts); in ads7846_probe()
1405 dev_info(&spi->dev, "touchscreen, irq %d\n", spi->irq); in ads7846_probe()
1412 ads7845_read12_ser(&spi->dev, PWRDOWN); in ads7846_probe()
1414 (void) ads7846_read12_ser(&spi->dev, READ_12BIT_SER(vaux)); in ads7846_probe()
1416 err = sysfs_create_group(&spi->dev.kobj, &ads784x_attr_group); in ads7846_probe()
1424 device_init_wakeup(&spi->dev, pdata->wakeup); in ads7846_probe()
1430 if (!dev_get_platdata(&spi->dev)) in ads7846_probe()
1431 devm_kfree(&spi->dev, (void *)pdata); in ads7846_probe()
1436 sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group); in ads7846_probe()
1438 ads784x_hwmon_unregister(spi, ts); in ads7846_probe()
1440 free_irq(spi->irq, ts); in ads7846_probe()
1458 static int ads7846_remove(struct spi_device *spi) in ads7846_remove() argument
1460 struct ads7846 *ts = spi_get_drvdata(spi); in ads7846_remove()
1462 device_init_wakeup(&spi->dev, false); in ads7846_remove()
1464 sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group); in ads7846_remove()
1467 free_irq(ts->spi->irq, ts); in ads7846_remove()
1471 ads784x_hwmon_unregister(spi, ts); in ads7846_remove()
1490 dev_dbg(&spi->dev, "unregistered touchscreen\n"); in ads7846_remove()