Lines Matching defs:idev
266 struct iio_dev *idev = pf->indio_dev;
267 struct at91_adc_state *st = iio_priv(idev);
271 for (i = 0; i < idev->masklength; i++) {
272 if (!test_bit(i, idev->active_scan_mask))
274 chan = idev->channels + i;
279 iio_push_to_buffers_with_timestamp(idev, st->buffer, pf->timestamp);
281 iio_trigger_notify_done(idev->trig);
292 static void handle_adc_eoc_trigger(int irq, struct iio_dev *idev)
294 struct at91_adc_state *st = iio_priv(idev);
296 if (iio_buffer_enabled(idev)) {
298 iio_trigger_poll(idev->trig);
308 static int at91_ts_sample(struct iio_dev *idev)
310 struct at91_adc_state *st = iio_priv(idev);
326 dev_err(&idev->dev, "Error: xscale == 0!\n");
337 dev_err(&idev->dev, "Error: yscale == 0!\n");
353 dev_dbg(&idev->dev, "xpos = %d, xscale = %d, ypos = %d, yscale = %d, z1 = %d, z2 = %d, press = %d\n",
357 dev_dbg(&idev->dev, "x = %d, y = %d, pressure = %d\n",
365 dev_dbg(&idev->dev, "pressure too low: not reporting\n");
373 struct iio_dev *idev = private;
374 struct at91_adc_state *st = iio_priv(idev);
380 handle_adc_eoc_trigger(irq, idev);
438 struct iio_dev *idev = private;
439 struct at91_adc_state *st = iio_priv(idev);
447 handle_adc_eoc_trigger(irq, idev);
470 at91_ts_sample(idev);
484 static int at91_adc_channel_init(struct iio_dev *idev)
486 struct at91_adc_state *st = iio_priv(idev);
500 idev->num_channels = bitmap_weight(&st->channels_mask,
503 chan_array = devm_kzalloc(&idev->dev,
504 ((idev->num_channels + 1) *
534 idev->channels = chan_array;
535 return idev->num_channels;
538 static int at91_adc_get_trigger_value_by_name(struct iio_dev *idev,
542 struct at91_adc_state *st = iio_priv(idev);
548 idev->name,
549 iio_device_id(idev),
569 struct iio_dev *idev = iio_trigger_get_drvdata(trig);
570 struct at91_adc_state *st = iio_priv(idev);
576 value = at91_adc_get_trigger_value_by_name(idev,
578 idev->trig->name);
583 st->buffer = kmalloc(idev->scan_bytes, GFP_KERNEL);
590 for_each_set_bit(bit, idev->active_scan_mask,
592 struct iio_chan_spec const *chan = idev->channels + bit;
605 for_each_set_bit(bit, idev->active_scan_mask,
607 struct iio_chan_spec const *chan = idev->channels + bit;
621 static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev,
627 trig = iio_trigger_alloc(idev->dev.parent, "%s-dev%d-%s", idev->name,
628 iio_device_id(idev), trigger->name);
632 iio_trigger_set_drvdata(trig, idev);
644 static int at91_adc_trigger_init(struct iio_dev *idev)
646 struct at91_adc_state *st = iio_priv(idev);
649 st->trig = devm_kcalloc(&idev->dev,
662 st->trig[i] = at91_adc_allocate_trigger(idev,
665 dev_err(&idev->dev,
683 static void at91_adc_trigger_remove(struct iio_dev *idev)
685 struct at91_adc_state *st = iio_priv(idev);
694 static int at91_adc_buffer_init(struct iio_dev *idev)
696 return iio_triggered_buffer_setup(idev, &iio_pollfunc_store_time,
700 static void at91_adc_buffer_remove(struct iio_dev *idev)
702 iio_triggered_buffer_cleanup(idev);
705 static int at91_adc_read_raw(struct iio_dev *idev,
709 struct at91_adc_state *st = iio_priv(idev);
741 dev_err(&idev->dev, "ADC Channel %d timeout.\n",
860 static int at91_ts_hw_init(struct iio_dev *idev, u32 adc_clk_khz)
862 struct at91_adc_state *st = iio_priv(idev);
902 dev_dbg(&idev->dev, "adc_clk at: %d KHz, tssctim at: %d\n",
935 static int at91_ts_register(struct iio_dev *idev,
938 struct at91_adc_state *st = iio_priv(idev);
944 dev_err(&idev->dev, "Failed to allocate TS device!\n");
1001 struct iio_dev *idev;
1006 idev = devm_iio_device_alloc(&pdev->dev, sizeof(struct at91_adc_state));
1007 if (!idev)
1010 st = iio_priv(idev);
1017 dev_err(&idev->dev, "Missing adc-channels-used property in the DT.\n");
1025 dev_err(&idev->dev, "Missing adc-startup-time property in the DT.\n");
1035 dev_err(&idev->dev, "Missing adc-vref property in the DT.\n");
1046 dev_info(&idev->dev, "Resolution used: %u bits\n", st->res);
1053 ret = at91_adc_probe_dt_ts(node, st, &idev->dev);
1058 platform_set_drvdata(pdev, idev);
1060 idev->name = dev_name(&pdev->dev);
1061 idev->modes = INDIO_DIRECT_MODE;
1062 idev->info = &at91_adc_info;
1081 pdev->dev.driver->name, idev);
1084 pdev->dev.driver->name, idev);
1160 ret = at91_adc_channel_init(idev);
1175 ret = at91_adc_buffer_init(idev);
1181 ret = at91_adc_trigger_init(idev);
1184 at91_adc_buffer_remove(idev);
1188 ret = at91_ts_register(idev, pdev);
1192 at91_ts_hw_init(idev, adc_clk_khz);
1195 ret = iio_device_register(idev);
1205 at91_adc_trigger_remove(idev);
1206 at91_adc_buffer_remove(idev);
1215 free_irq(st->irq, idev);
1221 struct iio_dev *idev = platform_get_drvdata(pdev);
1222 struct at91_adc_state *st = iio_priv(idev);
1224 iio_device_unregister(idev);
1226 at91_adc_trigger_remove(idev);
1227 at91_adc_buffer_remove(idev);
1233 free_irq(st->irq, idev);
1240 struct iio_dev *idev = dev_get_drvdata(dev);
1241 struct at91_adc_state *st = iio_priv(idev);
1251 struct iio_dev *idev = dev_get_drvdata(dev);
1252 struct at91_adc_state *st = iio_priv(idev);