Lines Matching refs:indio_dev
278 static int max1027_wait_eoc(struct iio_dev *indio_dev) in max1027_wait_eoc() argument
280 struct max1027_state *st = iio_priv(indio_dev); in max1027_wait_eoc()
291 if (indio_dev->active_scan_mask) in max1027_wait_eoc()
292 conversion_time *= hweight32(*indio_dev->active_scan_mask); in max1027_wait_eoc()
301 static int max1027_configure_chans_and_start(struct iio_dev *indio_dev) in max1027_configure_chans_and_start() argument
303 struct max1027_state *st = iio_priv(indio_dev); in max1027_configure_chans_and_start()
306 st->reg |= MAX1027_CHAN(fls(*indio_dev->active_scan_mask) - 2); in max1027_configure_chans_and_start()
307 if (*indio_dev->active_scan_mask & MAX1X27_SCAN_MASK_TEMP) in max1027_configure_chans_and_start()
313 static int max1027_enable_trigger(struct iio_dev *indio_dev, bool enable) in max1027_enable_trigger() argument
315 struct max1027_state *st = iio_priv(indio_dev); in max1027_enable_trigger()
332 static int max1027_read_single_value(struct iio_dev *indio_dev, in max1027_read_single_value() argument
337 struct max1027_state *st = iio_priv(indio_dev); in max1027_read_single_value()
339 ret = iio_device_claim_direct_mode(indio_dev); in max1027_read_single_value()
350 dev_err(&indio_dev->dev, in max1027_read_single_value()
360 ret = max1027_wait_eoc(indio_dev); in max1027_read_single_value()
368 iio_device_release_direct_mode(indio_dev); in max1027_read_single_value()
378 static int max1027_read_raw(struct iio_dev *indio_dev, in max1027_read_raw() argument
383 struct max1027_state *st = iio_priv(indio_dev); in max1027_read_raw()
389 ret = max1027_read_single_value(indio_dev, chan, val); in max1027_read_raw()
418 static int max1027_debugfs_reg_access(struct iio_dev *indio_dev, in max1027_debugfs_reg_access() argument
422 struct max1027_state *st = iio_priv(indio_dev); in max1027_debugfs_reg_access()
437 struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); in max1027_set_cnvst_trigger_state() local
446 ret = max1027_enable_trigger(indio_dev, state); in max1027_set_cnvst_trigger_state()
451 ret = max1027_configure_chans_and_start(indio_dev); in max1027_set_cnvst_trigger_state()
459 static int max1027_read_scan(struct iio_dev *indio_dev) in max1027_read_scan() argument
461 struct max1027_state *st = iio_priv(indio_dev); in max1027_read_scan()
465 scanned_chans = fls(*indio_dev->active_scan_mask) - 1; in max1027_read_scan()
466 if (*indio_dev->active_scan_mask & MAX1X27_SCAN_MASK_TEMP) in max1027_read_scan()
474 iio_push_to_buffers(indio_dev, st->buffer); in max1027_read_scan()
481 struct iio_dev *indio_dev = private; in max1027_handler() local
482 struct max1027_state *st = iio_priv(indio_dev); in max1027_handler()
495 if (!iio_buffer_enabled(indio_dev)) in max1027_handler()
498 iio_trigger_poll(indio_dev->trig); in max1027_handler()
506 struct iio_dev *indio_dev = pf->indio_dev; in max1027_trigger_handler() local
509 if (!iio_trigger_using_own(indio_dev)) { in max1027_trigger_handler()
510 ret = max1027_configure_chans_and_start(indio_dev); in max1027_trigger_handler()
515 ret = max1027_wait_eoc(indio_dev); in max1027_trigger_handler()
520 ret = max1027_read_scan(indio_dev); in max1027_trigger_handler()
523 dev_err(&indio_dev->dev, in max1027_trigger_handler()
526 iio_trigger_notify_done(indio_dev->trig); in max1027_trigger_handler()
544 struct iio_dev *indio_dev; in max1027_probe() local
547 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in max1027_probe()
548 if (!indio_dev) { in max1027_probe()
553 st = iio_priv(indio_dev); in max1027_probe()
560 indio_dev->name = spi_get_device_id(spi)->name; in max1027_probe()
561 indio_dev->info = &max1027_info; in max1027_probe()
562 indio_dev->modes = INDIO_DIRECT_MODE; in max1027_probe()
563 indio_dev->channels = st->info->channels; in max1027_probe()
564 indio_dev->num_channels = st->info->num_channels; in max1027_probe()
565 indio_dev->available_scan_masks = st->info->available_scan_masks; in max1027_probe()
567 st->buffer = devm_kmalloc_array(&indio_dev->dev, in max1027_probe()
568 indio_dev->num_channels, 2, in max1027_probe()
574 ret = devm_iio_triggered_buffer_setup(&spi->dev, indio_dev, in max1027_probe()
579 dev_err(&indio_dev->dev, "Failed to setup buffer\n"); in max1027_probe()
586 indio_dev->name); in max1027_probe()
589 dev_err(&indio_dev->dev, in max1027_probe()
595 iio_trigger_set_drvdata(st->trig, indio_dev); in max1027_probe()
596 ret = devm_iio_trigger_register(&indio_dev->dev, in max1027_probe()
599 dev_err(&indio_dev->dev, in max1027_probe()
606 spi->dev.driver->name, indio_dev); in max1027_probe()
608 dev_err(&indio_dev->dev, "Failed to allocate IRQ.\n"); in max1027_probe()
617 dev_err(&indio_dev->dev, "Failed to reset the ADC\n"); in max1027_probe()
625 dev_err(&indio_dev->dev, "Failed to configure averaging register\n"); in max1027_probe()
630 ret = max1027_enable_trigger(indio_dev, false); in max1027_probe()
634 return devm_iio_device_register(&spi->dev, indio_dev); in max1027_probe()