root/drivers/iio/adc/sd_adc_modulator.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. iio_sd_mod_probe

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * Generic sigma delta modulator driver
   4  *
   5  * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
   6  * Author: Arnaud Pouliquen <arnaud.pouliquen@st.com>.
   7  */
   8 
   9 #include <linux/iio/iio.h>
  10 #include <linux/iio/triggered_buffer.h>
  11 #include <linux/module.h>
  12 #include <linux/of_device.h>
  13 
  14 static const struct iio_info iio_sd_mod_iio_info;
  15 
  16 static const struct iio_chan_spec iio_sd_mod_ch = {
  17         .type = IIO_VOLTAGE,
  18         .indexed = 1,
  19         .scan_type = {
  20                 .sign = 'u',
  21                 .realbits = 1,
  22                 .shift = 0,
  23         },
  24 };
  25 
  26 static int iio_sd_mod_probe(struct platform_device *pdev)
  27 {
  28         struct device *dev = &pdev->dev;
  29         struct iio_dev *iio;
  30 
  31         iio = devm_iio_device_alloc(dev, 0);
  32         if (!iio)
  33                 return -ENOMEM;
  34 
  35         iio->dev.parent = dev;
  36         iio->dev.of_node = dev->of_node;
  37         iio->name = dev_name(dev);
  38         iio->info = &iio_sd_mod_iio_info;
  39         iio->modes = INDIO_BUFFER_HARDWARE;
  40 
  41         iio->num_channels = 1;
  42         iio->channels = &iio_sd_mod_ch;
  43 
  44         platform_set_drvdata(pdev, iio);
  45 
  46         return devm_iio_device_register(&pdev->dev, iio);
  47 }
  48 
  49 static const struct of_device_id sd_adc_of_match[] = {
  50         { .compatible = "sd-modulator" },
  51         { .compatible = "ads1201" },
  52         { }
  53 };
  54 MODULE_DEVICE_TABLE(of, sd_adc_of_match);
  55 
  56 static struct platform_driver iio_sd_mod_adc = {
  57         .driver = {
  58                 .name = "iio_sd_adc_mod",
  59                 .of_match_table = of_match_ptr(sd_adc_of_match),
  60         },
  61         .probe = iio_sd_mod_probe,
  62 };
  63 
  64 module_platform_driver(iio_sd_mod_adc);
  65 
  66 MODULE_DESCRIPTION("Basic sigma delta modulator");
  67 MODULE_AUTHOR("Arnaud Pouliquen <arnaud.pouliquen@st.com>");
  68 MODULE_LICENSE("GPL v2");

/* [<][>][^][v][top][bottom][index][help] */