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()
346 dev_err(&indio_dev->dev, in max1027_read_single_value()
356 ret = max1027_wait_eoc(indio_dev); in max1027_read_single_value()
370 static int max1027_read_raw(struct iio_dev *indio_dev, in max1027_read_raw() argument
375 struct max1027_state *st = iio_priv(indio_dev); in max1027_read_raw()
381 if (!iio_device_claim_direct(indio_dev)) in max1027_read_raw()
384 ret = max1027_read_single_value(indio_dev, chan, val); in max1027_read_raw()
385 iio_device_release_direct(indio_dev); in max1027_read_raw()
405 static int max1027_debugfs_reg_access(struct iio_dev *indio_dev, in max1027_debugfs_reg_access() argument
409 struct max1027_state *st = iio_priv(indio_dev); in max1027_debugfs_reg_access()
424 struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); in max1027_set_cnvst_trigger_state() local
433 ret = max1027_enable_trigger(indio_dev, state); in max1027_set_cnvst_trigger_state()
438 ret = max1027_configure_chans_and_start(indio_dev); in max1027_set_cnvst_trigger_state()
446 static int max1027_read_scan(struct iio_dev *indio_dev) in max1027_read_scan() argument
448 struct max1027_state *st = iio_priv(indio_dev); in max1027_read_scan()
452 scanned_chans = fls(*indio_dev->active_scan_mask) - 1; in max1027_read_scan()
453 if (*indio_dev->active_scan_mask & MAX1X27_SCAN_MASK_TEMP) in max1027_read_scan()
461 iio_push_to_buffers(indio_dev, st->buffer); in max1027_read_scan()
468 struct iio_dev *indio_dev = private; in max1027_handler() local
469 struct max1027_state *st = iio_priv(indio_dev); in max1027_handler()
482 if (!iio_buffer_enabled(indio_dev)) in max1027_handler()
485 iio_trigger_poll(indio_dev->trig); in max1027_handler()
493 struct iio_dev *indio_dev = pf->indio_dev; in max1027_trigger_handler() local
496 if (!iio_trigger_using_own(indio_dev)) { in max1027_trigger_handler()
497 ret = max1027_configure_chans_and_start(indio_dev); in max1027_trigger_handler()
502 ret = max1027_wait_eoc(indio_dev); in max1027_trigger_handler()
507 ret = max1027_read_scan(indio_dev); in max1027_trigger_handler()
510 dev_err(&indio_dev->dev, in max1027_trigger_handler()
513 iio_trigger_notify_done(indio_dev->trig); in max1027_trigger_handler()
531 struct iio_dev *indio_dev; in max1027_probe() local
534 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in max1027_probe()
535 if (!indio_dev) { in max1027_probe()
540 st = iio_priv(indio_dev); in max1027_probe()
547 indio_dev->name = spi_get_device_id(spi)->name; in max1027_probe()
548 indio_dev->info = &max1027_info; in max1027_probe()
549 indio_dev->modes = INDIO_DIRECT_MODE; in max1027_probe()
550 indio_dev->channels = st->info->channels; in max1027_probe()
551 indio_dev->num_channels = st->info->num_channels; in max1027_probe()
552 indio_dev->available_scan_masks = st->info->available_scan_masks; in max1027_probe()
554 st->buffer = devm_kmalloc_array(&indio_dev->dev, in max1027_probe()
555 indio_dev->num_channels, 2, in max1027_probe()
561 ret = devm_iio_triggered_buffer_setup(&spi->dev, indio_dev, in max1027_probe()
566 dev_err(&indio_dev->dev, "Failed to setup buffer\n"); in max1027_probe()
573 indio_dev->name); in max1027_probe()
576 dev_err(&indio_dev->dev, in max1027_probe()
582 iio_trigger_set_drvdata(st->trig, indio_dev); in max1027_probe()
583 ret = devm_iio_trigger_register(&indio_dev->dev, in max1027_probe()
586 dev_err(&indio_dev->dev, in max1027_probe()
593 spi->dev.driver->name, indio_dev); in max1027_probe()
595 dev_err(&indio_dev->dev, "Failed to allocate IRQ.\n"); in max1027_probe()
604 dev_err(&indio_dev->dev, "Failed to reset the ADC\n"); in max1027_probe()
612 dev_err(&indio_dev->dev, "Failed to configure averaging register\n"); in max1027_probe()
617 ret = max1027_enable_trigger(indio_dev, false); in max1027_probe()
621 return devm_iio_device_register(&spi->dev, indio_dev); in max1027_probe()