Lines Matching refs:indio_dev

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