Lines Matching full:iio

24 #include <linux/iio/buffer.h>
25 #include <linux/iio/iio.h>
26 #include <linux/iio/trigger.h>
27 #include <linux/iio/trigger_consumer.h>
28 #include <linux/iio/triggered_buffer.h>
29 #include <linux/iio/sysfs.h>
319 struct iio_dev *iio = dev_to_iio_dev(dev); in mxs_lradc_adc_show_scale_avail() local
320 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_show_scale_avail()
386 struct iio_dev *iio = data; in mxs_lradc_adc_handle_irq() local
387 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_handle_irq()
395 if (iio_buffer_enabled(iio)) { in mxs_lradc_adc_handle_irq()
398 iio_trigger_poll(iio->trig); in mxs_lradc_adc_handle_irq()
416 struct iio_dev *iio = pf->indio_dev; in mxs_lradc_adc_trigger_handler() local
417 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_trigger_handler()
422 for_each_set_bit(i, iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS) { in mxs_lradc_adc_trigger_handler()
430 iio_push_to_buffers_with_timestamp(iio, adc->buffer, pf->timestamp); in mxs_lradc_adc_trigger_handler()
432 iio_trigger_notify_done(iio->trig); in mxs_lradc_adc_trigger_handler()
439 struct iio_dev *iio = iio_trigger_get_drvdata(trig); in mxs_lradc_adc_configure_trigger() local
440 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_configure_trigger()
452 static int mxs_lradc_adc_trigger_init(struct iio_dev *iio) in mxs_lradc_adc_trigger_init() argument
456 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_trigger_init()
458 trig = devm_iio_trigger_alloc(&iio->dev, "%s-dev%i", iio->name, in mxs_lradc_adc_trigger_init()
459 iio_device_id(iio)); in mxs_lradc_adc_trigger_init()
464 iio_trigger_set_drvdata(trig, iio); in mxs_lradc_adc_trigger_init()
476 static void mxs_lradc_adc_trigger_remove(struct iio_dev *iio) in mxs_lradc_adc_trigger_remove() argument
478 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_trigger_remove()
483 static int mxs_lradc_adc_buffer_preenable(struct iio_dev *iio) in mxs_lradc_adc_buffer_preenable() argument
485 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_buffer_preenable()
501 for_each_set_bit(chan, iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS) { in mxs_lradc_adc_buffer_preenable()
521 static int mxs_lradc_adc_buffer_postdisable(struct iio_dev *iio) in mxs_lradc_adc_buffer_postdisable() argument
523 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_buffer_postdisable()
538 static bool mxs_lradc_adc_validate_scan_mask(struct iio_dev *iio, in mxs_lradc_adc_validate_scan_mask() argument
541 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_validate_scan_mask()
693 struct iio_dev *iio; in mxs_lradc_adc_probe() local
699 /* Allocate the IIO device. */ in mxs_lradc_adc_probe()
700 iio = devm_iio_device_alloc(dev, sizeof(*adc)); in mxs_lradc_adc_probe()
701 if (!iio) { in mxs_lradc_adc_probe()
702 dev_err(dev, "Failed to allocate IIO device\n"); in mxs_lradc_adc_probe()
706 adc = iio_priv(iio); in mxs_lradc_adc_probe()
721 platform_set_drvdata(pdev, iio); in mxs_lradc_adc_probe()
723 iio->name = pdev->name; in mxs_lradc_adc_probe()
724 iio->dev.of_node = dev->parent->of_node; in mxs_lradc_adc_probe()
725 iio->info = &mxs_lradc_adc_iio_info; in mxs_lradc_adc_probe()
726 iio->modes = INDIO_DIRECT_MODE; in mxs_lradc_adc_probe()
727 iio->masklength = LRADC_MAX_TOTAL_CHANS; in mxs_lradc_adc_probe()
730 iio->channels = mx23_lradc_chan_spec; in mxs_lradc_adc_probe()
731 iio->num_channels = ARRAY_SIZE(mx23_lradc_chan_spec); in mxs_lradc_adc_probe()
735 iio->channels = mx28_lradc_chan_spec; in mxs_lradc_adc_probe()
736 iio->num_channels = ARRAY_SIZE(mx28_lradc_chan_spec); in mxs_lradc_adc_probe()
753 0, irq_name[i], iio); in mxs_lradc_adc_probe()
758 ret = mxs_lradc_adc_trigger_init(iio); in mxs_lradc_adc_probe()
762 ret = iio_triggered_buffer_setup(iio, &iio_pollfunc_store_time, in mxs_lradc_adc_probe()
793 /* Register IIO device. */ in mxs_lradc_adc_probe()
794 ret = iio_device_register(iio); in mxs_lradc_adc_probe()
796 dev_err(dev, "Failed to register IIO device\n"); in mxs_lradc_adc_probe()
804 mxs_lradc_adc_trigger_remove(iio); in mxs_lradc_adc_probe()
806 iio_triggered_buffer_cleanup(iio); in mxs_lradc_adc_probe()
812 struct iio_dev *iio = platform_get_drvdata(pdev); in mxs_lradc_adc_remove() local
813 struct mxs_lradc_adc *adc = iio_priv(iio); in mxs_lradc_adc_remove()
815 iio_device_unregister(iio); in mxs_lradc_adc_remove()
817 mxs_lradc_adc_trigger_remove(iio); in mxs_lradc_adc_remove()
818 iio_triggered_buffer_cleanup(iio); in mxs_lradc_adc_remove()