Lines Matching refs:indio_dev

211  * @indio_dev: The IIO device associated with the hardware to enable.
218 static int zpa2326_enable_device(const struct iio_dev *indio_dev)
223 iio_priv(indio_dev))->regmap,
226 zpa2326_err(indio_dev, "failed to enable device (%d)", err);
230 zpa2326_dbg(indio_dev, "enabled");
237 * @indio_dev: The IIO device associated with the hardware to disable.
244 static int zpa2326_sleep(const struct iio_dev *indio_dev)
249 iio_priv(indio_dev))->regmap,
252 zpa2326_err(indio_dev, "failed to sleep (%d)", err);
256 zpa2326_dbg(indio_dev, "sleeping");
263 * @indio_dev: The IIO device associated with the hardware to reset.
270 static int zpa2326_reset_device(const struct iio_dev *indio_dev)
275 iio_priv(indio_dev))->regmap,
278 zpa2326_err(indio_dev, "failed to reset device (%d)", err);
284 zpa2326_dbg(indio_dev, "reset");
292 * @indio_dev: The IIO device associated with the sampling hardware.
299 static int zpa2326_start_oneshot(const struct iio_dev *indio_dev)
304 iio_priv(indio_dev))->regmap,
309 zpa2326_err(indio_dev, "failed to start one shot cycle (%d)",
314 zpa2326_dbg(indio_dev, "one shot cycle started");
321 * @indio_dev: The IIO device associated with the sampling hardware.
322 * @private: Internal private state related to @indio_dev.
331 static int zpa2326_power_on(const struct iio_dev *indio_dev,
344 zpa2326_dbg(indio_dev, "powered on");
346 err = zpa2326_enable_device(indio_dev);
350 err = zpa2326_reset_device(indio_dev);
357 zpa2326_sleep(indio_dev);
363 zpa2326_dbg(indio_dev, "powered off");
371 * @indio_dev: The IIO device associated with the sampling hardware.
372 * @private: Internal private state related to @indio_dev.
376 static void zpa2326_power_off(const struct iio_dev *indio_dev,
382 zpa2326_dbg(indio_dev, "powered off");
387 * @indio_dev: The IIO device associated with the sampling hardware.
402 static int zpa2326_config_oneshot(const struct iio_dev *indio_dev,
406 iio_priv(indio_dev))->regmap;
421 dev_err(indio_dev->dev.parent,
427 zpa2326_dbg(indio_dev, "one shot mode setup @%dHz", freq->hz);
434 * @indio_dev: The IIO device associated with the sampling hardware.
444 static int zpa2326_clear_fifo(const struct iio_dev *indio_dev,
448 iio_priv(indio_dev))->regmap;
492 zpa2326_dbg(indio_dev, "FIFO cleared");
497 zpa2326_err(indio_dev, "failed to clear FIFO (%d)", err);
505 * @indio_dev: The IIO device associated with the sampling hardware.
512 static int zpa2326_dequeue_pressure(const struct iio_dev *indio_dev,
516 iio_priv(indio_dev))->regmap;
532 zpa2326_warn(indio_dev, "FIFO overflow");
541 return zpa2326_clear_fifo(indio_dev, ZPA2326_FIFO_DEPTH - 1);
567 zpa2326_dbg(indio_dev, "cleared %d FIFO entries", cleared);
574 * @indio_dev: The IIO device associated with the sampling hardware.
575 * @private: Internal private state related to @indio_dev.
579 static int zpa2326_fill_sample_buffer(struct iio_dev *indio_dev,
589 if (test_bit(0, indio_dev->active_scan_mask)) {
591 err = zpa2326_dequeue_pressure(indio_dev, &sample.pressure);
593 zpa2326_warn(indio_dev, "failed to fetch pressure (%d)",
599 if (test_bit(1, indio_dev->active_scan_mask)) {
604 zpa2326_warn(indio_dev,
617 zpa2326_dbg(indio_dev, "filling raw samples buffer");
619 iio_push_to_buffers_with_timestamp(indio_dev, &sample,
628 const struct iio_dev *indio_dev = dev_get_drvdata(parent);
634 zpa2326_power_off(indio_dev, iio_priv(indio_dev));
641 const struct iio_dev *indio_dev = dev_get_drvdata(parent);
643 return zpa2326_power_on(indio_dev, iio_priv(indio_dev));
656 * @indio_dev: The IIO device associated with the sampling hardware.
663 static int zpa2326_resume(const struct iio_dev *indio_dev)
667 err = pm_runtime_get_sync(indio_dev->dev.parent);
669 pm_runtime_put(indio_dev->dev.parent);
678 zpa2326_enable_device(indio_dev);
689 * @indio_dev: The IIO device associated with the sampling hardware.
694 static void zpa2326_suspend(struct iio_dev *indio_dev)
696 struct device *parent = indio_dev->dev.parent;
698 zpa2326_sleep(indio_dev);
721 static int zpa2326_resume(const struct iio_dev *indio_dev)
723 zpa2326_enable_device(indio_dev);
728 static void zpa2326_suspend(struct iio_dev *indio_dev)
730 zpa2326_sleep(indio_dev);
749 struct iio_dev *indio_dev = data;
751 if (iio_buffer_enabled(indio_dev)) {
754 iio_priv(indio_dev))->timestamp = iio_get_time_ns(indio_dev);
788 struct iio_dev *indio_dev = data;
789 struct zpa2326_private *priv = iio_priv(indio_dev);
798 cont = (iio_buffer_enabled(indio_dev) &&
799 iio_trigger_using_own(indio_dev));
821 zpa2326_warn(indio_dev, "unexpected interrupt status %02x",
855 * @indio_dev: The IIO device associated with the sampling hardware.
856 * @private: Internal private state related to @indio_dev.
860 static int zpa2326_wait_oneshot_completion(const struct iio_dev *indio_dev,
866 zpa2326_dbg(indio_dev, "waiting for one shot completion interrupt");
882 zpa2326_warn(indio_dev, "no one shot interrupt occurred (%ld)",
887 zpa2326_warn(indio_dev, "wait for one shot interrupt cancelled");
892 struct iio_dev *indio_dev,
915 dev_name(parent), indio_dev);
929 * @indio_dev: The IIO device associated with the sampling hardware.
936 static int zpa2326_poll_oneshot_completion(const struct iio_dev *indio_dev)
940 iio_priv(indio_dev))->regmap;
944 zpa2326_dbg(indio_dev, "polling for one shot completion");
990 zpa2326_warn(indio_dev, "failed to poll one shot completion (%d)", err);
998 * @indio_dev: The IIO device associated with the sampling hardware.
1004 static int zpa2326_fetch_raw_sample(const struct iio_dev *indio_dev,
1009 iio_priv(indio_dev))->regmap;
1015 zpa2326_dbg(indio_dev, "fetching raw pressure sample");
1019 zpa2326_warn(indio_dev, "failed to fetch pressure (%d)",
1029 zpa2326_dbg(indio_dev, "fetching raw temperature sample");
1033 zpa2326_warn(indio_dev,
1050 * @indio_dev: The IIO device associated with the sampling hardware.
1056 static int zpa2326_sample_oneshot(struct iio_dev *indio_dev,
1063 ret = iio_device_claim_direct_mode(indio_dev);
1067 ret = zpa2326_resume(indio_dev);
1071 priv = iio_priv(indio_dev);
1086 ret = zpa2326_clear_fifo(indio_dev, 0);
1096 ret = zpa2326_config_oneshot(indio_dev, priv->irq);
1102 ret = zpa2326_start_oneshot(indio_dev);
1108 ret = zpa2326_wait_oneshot_completion(indio_dev, priv);
1110 ret = zpa2326_poll_oneshot_completion(indio_dev);
1116 ret = zpa2326_fetch_raw_sample(indio_dev, type, value);
1119 zpa2326_suspend(indio_dev);
1121 iio_device_release_direct_mode(indio_dev);
1155 struct iio_dev *indio_dev = ((struct iio_poll_func *)
1156 data)->indio_dev;
1157 struct zpa2326_private *priv = iio_priv(indio_dev);
1165 cont = iio_trigger_using_own(indio_dev);
1169 if (zpa2326_start_oneshot(indio_dev))
1175 if (zpa2326_poll_oneshot_completion(indio_dev))
1179 priv->timestamp = iio_get_time_ns(indio_dev);
1182 if (zpa2326_wait_oneshot_completion(indio_dev, priv))
1188 zpa2326_fill_sample_buffer(indio_dev, priv);
1193 zpa2326_sleep(indio_dev);
1196 iio_trigger_notify_done(indio_dev->trig);
1205 * @indio_dev: The IIO device associated with the sampling hardware.
1212 static int zpa2326_preenable_buffer(struct iio_dev *indio_dev)
1214 int ret = zpa2326_resume(indio_dev);
1221 iio_priv(indio_dev))->waken = iio_priv(indio_dev);
1228 * @indio_dev: The IIO device associated with the sampling hardware.
1242 static int zpa2326_postenable_buffer(struct iio_dev *indio_dev)
1244 const struct zpa2326_private *priv = iio_priv(indio_dev);
1252 err = zpa2326_clear_fifo(indio_dev, 0);
1254 zpa2326_err(indio_dev,
1260 if (!iio_trigger_using_own(indio_dev) && priv->waken) {
1265 err = zpa2326_config_oneshot(indio_dev, priv->irq);
1267 zpa2326_err(indio_dev,
1276 static int zpa2326_postdisable_buffer(struct iio_dev *indio_dev)
1278 zpa2326_suspend(indio_dev);
1303 const struct iio_dev *indio_dev = dev_get_drvdata(
1305 const struct zpa2326_private *priv = iio_priv(indio_dev);
1350 zpa2326_dbg(indio_dev, "continuous mode stopped");
1373 zpa2326_dbg(indio_dev, "continuous mode setup @%dHz",
1388 * @parent: Hardware sampling device @indio_dev is a child of.
1389 * @indio_dev: The IIO device associated with the sampling hardware.
1390 * @private: Internal private state related to @indio_dev.
1400 struct iio_dev *indio_dev,
1411 indio_dev->name,
1412 iio_device_id(indio_dev));
1430 static int zpa2326_get_frequency(const struct iio_dev *indio_dev)
1432 return ((struct zpa2326_private *)iio_priv(indio_dev))->frequency->hz;
1435 static int zpa2326_set_frequency(struct iio_dev *indio_dev, int hz)
1437 struct zpa2326_private *priv = iio_priv(indio_dev);
1449 err = iio_device_claim_direct_mode(indio_dev);
1455 iio_device_release_direct_mode(indio_dev);
1472 static int zpa2326_read_raw(struct iio_dev *indio_dev,
1480 return zpa2326_sample_oneshot(indio_dev, chan->type, val);
1528 *val = zpa2326_get_frequency(indio_dev);
1536 static int zpa2326_write_raw(struct iio_dev *indio_dev,
1545 return zpa2326_set_frequency(indio_dev, val);
1589 struct iio_dev *indio_dev;
1592 indio_dev = devm_iio_device_alloc(device,
1594 if (!indio_dev)
1598 indio_dev->modes = INDIO_DIRECT_MODE;
1599 indio_dev->channels = zpa2326_channels;
1600 indio_dev->num_channels = ARRAY_SIZE(zpa2326_channels);
1601 indio_dev->name = name;
1602 indio_dev->info = &zpa2326_info;
1604 return indio_dev;
1613 struct iio_dev *indio_dev;
1618 indio_dev = zpa2326_create_managed_iiodev(parent, name, regmap);
1619 if (!indio_dev)
1622 priv = iio_priv(indio_dev);
1642 err = devm_iio_triggered_buffer_setup(parent, indio_dev, NULL,
1648 err = zpa2326_init_managed_trigger(parent, indio_dev, priv, irq);
1652 err = zpa2326_init_managed_irq(parent, indio_dev, priv, irq);
1657 err = zpa2326_power_on(indio_dev, priv);
1672 err = zpa2326_config_oneshot(indio_dev, irq);
1677 err = zpa2326_sleep(indio_dev);
1681 dev_set_drvdata(parent, indio_dev);
1685 err = iio_device_register(indio_dev);
1695 zpa2326_sleep(indio_dev);
1697 zpa2326_power_off(indio_dev, priv);
1705 struct iio_dev *indio_dev = dev_get_drvdata(parent);
1707 iio_device_unregister(indio_dev);
1708 zpa2326_fini_runtime(indio_dev->dev.parent);
1709 zpa2326_sleep(indio_dev);
1710 zpa2326_power_off(indio_dev, iio_priv(indio_dev));