Lines Matching refs:indio_dev
217 static int zpa2326_enable_device(const struct iio_dev *indio_dev) in zpa2326_enable_device() argument
222 iio_priv(indio_dev))->regmap, in zpa2326_enable_device()
225 zpa2326_err(indio_dev, "failed to enable device (%d)", err); in zpa2326_enable_device()
229 zpa2326_dbg(indio_dev, "enabled"); in zpa2326_enable_device()
243 static int zpa2326_sleep(const struct iio_dev *indio_dev) in zpa2326_sleep() argument
248 iio_priv(indio_dev))->regmap, in zpa2326_sleep()
251 zpa2326_err(indio_dev, "failed to sleep (%d)", err); in zpa2326_sleep()
255 zpa2326_dbg(indio_dev, "sleeping"); in zpa2326_sleep()
269 static int zpa2326_reset_device(const struct iio_dev *indio_dev) in zpa2326_reset_device() argument
274 iio_priv(indio_dev))->regmap, in zpa2326_reset_device()
277 zpa2326_err(indio_dev, "failed to reset device (%d)", err); in zpa2326_reset_device()
283 zpa2326_dbg(indio_dev, "reset"); in zpa2326_reset_device()
298 static int zpa2326_start_oneshot(const struct iio_dev *indio_dev) in zpa2326_start_oneshot() argument
303 iio_priv(indio_dev))->regmap, in zpa2326_start_oneshot()
308 zpa2326_err(indio_dev, "failed to start one shot cycle (%d)", in zpa2326_start_oneshot()
313 zpa2326_dbg(indio_dev, "one shot cycle started"); in zpa2326_start_oneshot()
330 static int zpa2326_power_on(const struct iio_dev *indio_dev, in zpa2326_power_on() argument
343 zpa2326_dbg(indio_dev, "powered on"); in zpa2326_power_on()
345 err = zpa2326_enable_device(indio_dev); in zpa2326_power_on()
349 err = zpa2326_reset_device(indio_dev); in zpa2326_power_on()
356 zpa2326_sleep(indio_dev); in zpa2326_power_on()
362 zpa2326_dbg(indio_dev, "powered off"); in zpa2326_power_on()
375 static void zpa2326_power_off(const struct iio_dev *indio_dev, in zpa2326_power_off() argument
381 zpa2326_dbg(indio_dev, "powered off"); in zpa2326_power_off()
401 static int zpa2326_config_oneshot(const struct iio_dev *indio_dev, in zpa2326_config_oneshot() argument
405 iio_priv(indio_dev))->regmap; in zpa2326_config_oneshot()
420 dev_err(indio_dev->dev.parent, in zpa2326_config_oneshot()
426 zpa2326_dbg(indio_dev, "one shot mode setup @%dHz", freq->hz); in zpa2326_config_oneshot()
443 static int zpa2326_clear_fifo(const struct iio_dev *indio_dev, in zpa2326_clear_fifo() argument
447 iio_priv(indio_dev))->regmap; in zpa2326_clear_fifo()
491 zpa2326_dbg(indio_dev, "FIFO cleared"); in zpa2326_clear_fifo()
496 zpa2326_err(indio_dev, "failed to clear FIFO (%d)", err); in zpa2326_clear_fifo()
511 static int zpa2326_dequeue_pressure(const struct iio_dev *indio_dev, in zpa2326_dequeue_pressure() argument
515 iio_priv(indio_dev))->regmap; in zpa2326_dequeue_pressure()
531 zpa2326_warn(indio_dev, "FIFO overflow"); in zpa2326_dequeue_pressure()
540 return zpa2326_clear_fifo(indio_dev, ZPA2326_FIFO_DEPTH - 1); in zpa2326_dequeue_pressure()
566 zpa2326_dbg(indio_dev, "cleared %d FIFO entries", cleared); in zpa2326_dequeue_pressure()
578 static int zpa2326_fill_sample_buffer(struct iio_dev *indio_dev, in zpa2326_fill_sample_buffer() argument
588 if (test_bit(0, indio_dev->active_scan_mask)) { in zpa2326_fill_sample_buffer()
590 err = zpa2326_dequeue_pressure(indio_dev, &sample.pressure); in zpa2326_fill_sample_buffer()
592 zpa2326_warn(indio_dev, "failed to fetch pressure (%d)", in zpa2326_fill_sample_buffer()
598 if (test_bit(1, indio_dev->active_scan_mask)) { in zpa2326_fill_sample_buffer()
603 zpa2326_warn(indio_dev, in zpa2326_fill_sample_buffer()
616 zpa2326_dbg(indio_dev, "filling raw samples buffer"); in zpa2326_fill_sample_buffer()
618 iio_push_to_buffers_with_timestamp(indio_dev, &sample, in zpa2326_fill_sample_buffer()
627 const struct iio_dev *indio_dev = dev_get_drvdata(parent); in zpa2326_runtime_suspend() local
633 zpa2326_power_off(indio_dev, iio_priv(indio_dev)); in zpa2326_runtime_suspend()
640 const struct iio_dev *indio_dev = dev_get_drvdata(parent); in zpa2326_runtime_resume() local
642 return zpa2326_power_on(indio_dev, iio_priv(indio_dev)); in zpa2326_runtime_resume()
662 static int zpa2326_resume(const struct iio_dev *indio_dev) in zpa2326_resume() argument
666 err = pm_runtime_get_sync(indio_dev->dev.parent); in zpa2326_resume()
675 zpa2326_enable_device(indio_dev); in zpa2326_resume()
691 static void zpa2326_suspend(struct iio_dev *indio_dev) in zpa2326_suspend() argument
693 struct device *parent = indio_dev->dev.parent; in zpa2326_suspend()
695 zpa2326_sleep(indio_dev); in zpa2326_suspend()
718 static int zpa2326_resume(const struct iio_dev *indio_dev) in zpa2326_resume() argument
720 zpa2326_enable_device(indio_dev); in zpa2326_resume()
725 static void zpa2326_suspend(struct iio_dev *indio_dev) in zpa2326_suspend() argument
727 zpa2326_sleep(indio_dev); in zpa2326_suspend()
746 struct iio_dev *indio_dev = data; in zpa2326_handle_irq() local
748 if (iio_buffer_enabled(indio_dev)) { in zpa2326_handle_irq()
751 iio_priv(indio_dev))->timestamp = iio_get_time_ns(indio_dev); in zpa2326_handle_irq()
785 struct iio_dev *indio_dev = data; in zpa2326_handle_threaded_irq() local
786 struct zpa2326_private *priv = iio_priv(indio_dev); in zpa2326_handle_threaded_irq()
795 cont = (iio_buffer_enabled(indio_dev) && in zpa2326_handle_threaded_irq()
796 iio_trigger_using_own(indio_dev)); in zpa2326_handle_threaded_irq()
818 zpa2326_warn(indio_dev, "unexpected interrupt status %02x", in zpa2326_handle_threaded_irq()
857 static int zpa2326_wait_oneshot_completion(const struct iio_dev *indio_dev, in zpa2326_wait_oneshot_completion() argument
863 zpa2326_dbg(indio_dev, "waiting for one shot completion interrupt"); in zpa2326_wait_oneshot_completion()
879 zpa2326_warn(indio_dev, "no one shot interrupt occurred (%ld)", in zpa2326_wait_oneshot_completion()
884 zpa2326_warn(indio_dev, "wait for one shot interrupt cancelled"); in zpa2326_wait_oneshot_completion()
889 struct iio_dev *indio_dev, in zpa2326_init_managed_irq() argument
912 dev_name(parent), indio_dev); in zpa2326_init_managed_irq()
933 static int zpa2326_poll_oneshot_completion(const struct iio_dev *indio_dev) in zpa2326_poll_oneshot_completion() argument
937 iio_priv(indio_dev))->regmap; in zpa2326_poll_oneshot_completion()
941 zpa2326_dbg(indio_dev, "polling for one shot completion"); in zpa2326_poll_oneshot_completion()
987 zpa2326_warn(indio_dev, "failed to poll one shot completion (%d)", err); in zpa2326_poll_oneshot_completion()
1001 static int zpa2326_fetch_raw_sample(const struct iio_dev *indio_dev, in zpa2326_fetch_raw_sample() argument
1006 iio_priv(indio_dev))->regmap; in zpa2326_fetch_raw_sample()
1011 zpa2326_dbg(indio_dev, "fetching raw pressure sample"); in zpa2326_fetch_raw_sample()
1016 zpa2326_warn(indio_dev, "failed to fetch pressure (%d)", in zpa2326_fetch_raw_sample()
1028 zpa2326_dbg(indio_dev, "fetching raw temperature sample"); in zpa2326_fetch_raw_sample()
1032 zpa2326_warn(indio_dev, in zpa2326_fetch_raw_sample()
1055 static int zpa2326_sample_oneshot(struct iio_dev *indio_dev, in zpa2326_sample_oneshot() argument
1062 ret = iio_device_claim_direct_mode(indio_dev); in zpa2326_sample_oneshot()
1066 ret = zpa2326_resume(indio_dev); in zpa2326_sample_oneshot()
1070 priv = iio_priv(indio_dev); in zpa2326_sample_oneshot()
1085 ret = zpa2326_clear_fifo(indio_dev, 0); in zpa2326_sample_oneshot()
1095 ret = zpa2326_config_oneshot(indio_dev, priv->irq); in zpa2326_sample_oneshot()
1101 ret = zpa2326_start_oneshot(indio_dev); in zpa2326_sample_oneshot()
1107 ret = zpa2326_wait_oneshot_completion(indio_dev, priv); in zpa2326_sample_oneshot()
1109 ret = zpa2326_poll_oneshot_completion(indio_dev); in zpa2326_sample_oneshot()
1115 ret = zpa2326_fetch_raw_sample(indio_dev, type, value); in zpa2326_sample_oneshot()
1118 zpa2326_suspend(indio_dev); in zpa2326_sample_oneshot()
1120 iio_device_release_direct_mode(indio_dev); in zpa2326_sample_oneshot()
1154 struct iio_dev *indio_dev = ((struct iio_poll_func *) in zpa2326_trigger_handler() local
1155 data)->indio_dev; in zpa2326_trigger_handler()
1156 struct zpa2326_private *priv = iio_priv(indio_dev); in zpa2326_trigger_handler()
1164 cont = iio_trigger_using_own(indio_dev); in zpa2326_trigger_handler()
1168 if (zpa2326_start_oneshot(indio_dev)) in zpa2326_trigger_handler()
1174 if (zpa2326_poll_oneshot_completion(indio_dev)) in zpa2326_trigger_handler()
1178 priv->timestamp = iio_get_time_ns(indio_dev); in zpa2326_trigger_handler()
1181 if (zpa2326_wait_oneshot_completion(indio_dev, priv)) in zpa2326_trigger_handler()
1187 zpa2326_fill_sample_buffer(indio_dev, priv); in zpa2326_trigger_handler()
1192 zpa2326_sleep(indio_dev); in zpa2326_trigger_handler()
1195 iio_trigger_notify_done(indio_dev->trig); in zpa2326_trigger_handler()
1211 static int zpa2326_preenable_buffer(struct iio_dev *indio_dev) in zpa2326_preenable_buffer() argument
1213 int ret = zpa2326_resume(indio_dev); in zpa2326_preenable_buffer()
1220 iio_priv(indio_dev))->waken = iio_priv(indio_dev); in zpa2326_preenable_buffer()
1241 static int zpa2326_postenable_buffer(struct iio_dev *indio_dev) in zpa2326_postenable_buffer() argument
1243 const struct zpa2326_private *priv = iio_priv(indio_dev); in zpa2326_postenable_buffer()
1251 err = zpa2326_clear_fifo(indio_dev, 0); in zpa2326_postenable_buffer()
1256 if (!iio_trigger_using_own(indio_dev) && priv->waken) { in zpa2326_postenable_buffer()
1261 err = zpa2326_config_oneshot(indio_dev, priv->irq); in zpa2326_postenable_buffer()
1267 err = iio_triggered_buffer_postenable(indio_dev); in zpa2326_postenable_buffer()
1274 zpa2326_err(indio_dev, "failed to enable buffering (%d)", err); in zpa2326_postenable_buffer()
1279 static int zpa2326_postdisable_buffer(struct iio_dev *indio_dev) in zpa2326_postdisable_buffer() argument
1281 zpa2326_suspend(indio_dev); in zpa2326_postdisable_buffer()
1307 const struct iio_dev *indio_dev = dev_get_drvdata( in zpa2326_set_trigger_state() local
1309 const struct zpa2326_private *priv = iio_priv(indio_dev); in zpa2326_set_trigger_state()
1354 zpa2326_dbg(indio_dev, "continuous mode stopped"); in zpa2326_set_trigger_state()
1377 zpa2326_dbg(indio_dev, "continuous mode setup @%dHz", in zpa2326_set_trigger_state()
1404 struct iio_dev *indio_dev, in zpa2326_init_managed_trigger() argument
1415 indio_dev->name, indio_dev->id); in zpa2326_init_managed_trigger()
1434 static int zpa2326_get_frequency(const struct iio_dev *indio_dev) in zpa2326_get_frequency() argument
1436 return ((struct zpa2326_private *)iio_priv(indio_dev))->frequency->hz; in zpa2326_get_frequency()
1439 static int zpa2326_set_frequency(struct iio_dev *indio_dev, int hz) in zpa2326_set_frequency() argument
1441 struct zpa2326_private *priv = iio_priv(indio_dev); in zpa2326_set_frequency()
1453 err = iio_device_claim_direct_mode(indio_dev); in zpa2326_set_frequency()
1459 iio_device_release_direct_mode(indio_dev); in zpa2326_set_frequency()
1476 static int zpa2326_read_raw(struct iio_dev *indio_dev, in zpa2326_read_raw() argument
1484 return zpa2326_sample_oneshot(indio_dev, chan->type, val); in zpa2326_read_raw()
1532 *val = zpa2326_get_frequency(indio_dev); in zpa2326_read_raw()
1540 static int zpa2326_write_raw(struct iio_dev *indio_dev, in zpa2326_write_raw() argument
1549 return zpa2326_set_frequency(indio_dev, val); in zpa2326_write_raw()
1593 struct iio_dev *indio_dev; in zpa2326_create_managed_iiodev() local
1596 indio_dev = devm_iio_device_alloc(device, in zpa2326_create_managed_iiodev()
1598 if (!indio_dev) in zpa2326_create_managed_iiodev()
1602 indio_dev->modes = INDIO_DIRECT_MODE; in zpa2326_create_managed_iiodev()
1603 indio_dev->dev.parent = device; in zpa2326_create_managed_iiodev()
1604 indio_dev->channels = zpa2326_channels; in zpa2326_create_managed_iiodev()
1605 indio_dev->num_channels = ARRAY_SIZE(zpa2326_channels); in zpa2326_create_managed_iiodev()
1606 indio_dev->name = name; in zpa2326_create_managed_iiodev()
1607 indio_dev->info = &zpa2326_info; in zpa2326_create_managed_iiodev()
1609 return indio_dev; in zpa2326_create_managed_iiodev()
1618 struct iio_dev *indio_dev; in zpa2326_probe() local
1623 indio_dev = zpa2326_create_managed_iiodev(parent, name, regmap); in zpa2326_probe()
1624 if (!indio_dev) in zpa2326_probe()
1627 priv = iio_priv(indio_dev); in zpa2326_probe()
1647 err = devm_iio_triggered_buffer_setup(parent, indio_dev, NULL, in zpa2326_probe()
1653 err = zpa2326_init_managed_trigger(parent, indio_dev, priv, irq); in zpa2326_probe()
1657 err = zpa2326_init_managed_irq(parent, indio_dev, priv, irq); in zpa2326_probe()
1662 err = zpa2326_power_on(indio_dev, priv); in zpa2326_probe()
1677 err = zpa2326_config_oneshot(indio_dev, irq); in zpa2326_probe()
1682 err = zpa2326_sleep(indio_dev); in zpa2326_probe()
1686 dev_set_drvdata(parent, indio_dev); in zpa2326_probe()
1690 err = iio_device_register(indio_dev); in zpa2326_probe()
1700 zpa2326_sleep(indio_dev); in zpa2326_probe()
1702 zpa2326_power_off(indio_dev, priv); in zpa2326_probe()
1710 struct iio_dev *indio_dev = dev_get_drvdata(parent); in zpa2326_remove() local
1712 iio_device_unregister(indio_dev); in zpa2326_remove()
1713 zpa2326_fini_runtime(indio_dev->dev.parent); in zpa2326_remove()
1714 zpa2326_sleep(indio_dev); in zpa2326_remove()
1715 zpa2326_power_off(indio_dev, iio_priv(indio_dev)); in zpa2326_remove()