Lines Matching refs:indio_dev
92 struct iio_dev *indio_dev; member
164 static int sun4i_prepare_for_irq(struct iio_dev *indio_dev, int channel, in sun4i_prepare_for_irq() argument
167 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_prepare_for_irq()
171 pm_runtime_get_sync(indio_dev->dev.parent); in sun4i_prepare_for_irq()
220 static int sun4i_gpadc_read(struct iio_dev *indio_dev, int channel, int *val, in sun4i_gpadc_read() argument
223 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_read()
228 ret = sun4i_prepare_for_irq(indio_dev, channel, irq); in sun4i_gpadc_read()
252 pm_runtime_mark_last_busy(indio_dev->dev.parent); in sun4i_gpadc_read()
255 pm_runtime_put_autosuspend(indio_dev->dev.parent); in sun4i_gpadc_read()
262 static int sun4i_gpadc_adc_read(struct iio_dev *indio_dev, int channel, in sun4i_gpadc_adc_read() argument
265 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_adc_read()
267 return sun4i_gpadc_read(indio_dev, channel, val, info->fifo_data_irq); in sun4i_gpadc_adc_read()
270 static int sun4i_gpadc_temp_read(struct iio_dev *indio_dev, int *val) in sun4i_gpadc_temp_read() argument
272 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_temp_read()
275 pm_runtime_get_sync(indio_dev->dev.parent); in sun4i_gpadc_temp_read()
279 pm_runtime_mark_last_busy(indio_dev->dev.parent); in sun4i_gpadc_temp_read()
280 pm_runtime_put_autosuspend(indio_dev->dev.parent); in sun4i_gpadc_temp_read()
285 return sun4i_gpadc_read(indio_dev, 0, val, info->temp_data_irq); in sun4i_gpadc_temp_read()
288 static int sun4i_gpadc_temp_offset(struct iio_dev *indio_dev, int *val) in sun4i_gpadc_temp_offset() argument
290 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_temp_offset()
297 static int sun4i_gpadc_temp_scale(struct iio_dev *indio_dev, int *val) in sun4i_gpadc_temp_scale() argument
299 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_temp_scale()
306 static int sun4i_gpadc_read_raw(struct iio_dev *indio_dev, in sun4i_gpadc_read_raw() argument
314 ret = sun4i_gpadc_temp_offset(indio_dev, val); in sun4i_gpadc_read_raw()
321 ret = sun4i_gpadc_adc_read(indio_dev, chan->channel, in sun4i_gpadc_read_raw()
324 ret = sun4i_gpadc_temp_read(indio_dev, val); in sun4i_gpadc_read_raw()
338 ret = sun4i_gpadc_temp_scale(indio_dev, val); in sun4i_gpadc_read_raw()
420 if (sun4i_gpadc_temp_read(info->indio_dev, &val)) in sun4i_gpadc_get_temp()
423 sun4i_gpadc_temp_scale(info->indio_dev, &scale); in sun4i_gpadc_get_temp()
424 sun4i_gpadc_temp_offset(info->indio_dev, &offset); in sun4i_gpadc_get_temp()
496 struct iio_dev *indio_dev) in sun4i_gpadc_probe_dt() argument
498 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_probe_dt()
507 indio_dev->num_channels = ARRAY_SIZE(sun8i_a33_gpadc_channels); in sun4i_gpadc_probe_dt()
508 indio_dev->channels = sun8i_a33_gpadc_channels; in sun4i_gpadc_probe_dt()
529 struct iio_dev *indio_dev) in sun4i_gpadc_probe_mfd() argument
531 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_probe_mfd()
539 indio_dev->num_channels = ARRAY_SIZE(sun4i_gpadc_channels); in sun4i_gpadc_probe_mfd()
540 indio_dev->channels = sun4i_gpadc_channels; in sun4i_gpadc_probe_mfd()
573 indio_dev->num_channels = in sun4i_gpadc_probe_mfd()
575 indio_dev->channels = sun4i_gpadc_channels_no_temp; in sun4i_gpadc_probe_mfd()
594 ret = iio_map_array_register(indio_dev, sun4i_gpadc_hwmon_maps); in sun4i_gpadc_probe_mfd()
608 struct iio_dev *indio_dev; in sun4i_gpadc_probe() local
611 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*info)); in sun4i_gpadc_probe()
612 if (!indio_dev) in sun4i_gpadc_probe()
615 info = iio_priv(indio_dev); in sun4i_gpadc_probe()
616 platform_set_drvdata(pdev, indio_dev); in sun4i_gpadc_probe()
619 info->indio_dev = indio_dev; in sun4i_gpadc_probe()
621 indio_dev->name = dev_name(&pdev->dev); in sun4i_gpadc_probe()
622 indio_dev->info = &sun4i_gpadc_iio_info; in sun4i_gpadc_probe()
623 indio_dev->modes = INDIO_DIRECT_MODE; in sun4i_gpadc_probe()
626 ret = sun4i_gpadc_probe_dt(pdev, indio_dev); in sun4i_gpadc_probe()
628 ret = sun4i_gpadc_probe_mfd(pdev, indio_dev); in sun4i_gpadc_probe()
655 ret = devm_iio_device_register(&pdev->dev, indio_dev); in sun4i_gpadc_probe()
665 iio_map_array_unregister(indio_dev); in sun4i_gpadc_probe()
675 struct iio_dev *indio_dev = platform_get_drvdata(pdev); in sun4i_gpadc_remove() local
676 struct sun4i_gpadc_iio *info = iio_priv(indio_dev); in sun4i_gpadc_remove()
685 iio_map_array_unregister(indio_dev); in sun4i_gpadc_remove()