Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
ad7791.c File Reference
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/sysfs.h>
#include <linux/spi/spi.h>
#include <linux/regulator/consumer.h>
#include <linux/err.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/buffer.h>
#include <linux/iio/trigger.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>
#include <linux/iio/adc/ad_sigma_delta.h>
#include <linux/platform_data/ad7791.h>

Go to the source code of this file.

Data Structures

struct  ad7791_chip_info
 
struct  ad7791_state
 

Macros

#define AD7791_REG_COMM   0x0 /* For writes */
 
#define AD7791_REG_STATUS   0x0 /* For reads */
 
#define AD7791_REG_MODE   0x1
 
#define AD7791_REG_FILTER   0x2
 
#define AD7791_REG_DATA   0x3
 
#define AD7791_MODE_CONTINUOUS   0x00
 
#define AD7791_MODE_SINGLE   0x02
 
#define AD7791_MODE_POWERDOWN   0x03
 
#define AD7791_CH_AIN1P_AIN1N   0x00
 
#define AD7791_CH_AIN2   0x01
 
#define AD7791_CH_AIN1N_AIN1N   0x02
 
#define AD7791_CH_AVDD_MONITOR   0x03
 
#define AD7791_FILTER_CLK_DIV_1   (0x0 << 4)
 
#define AD7791_FILTER_CLK_DIV_2   (0x1 << 4)
 
#define AD7791_FILTER_CLK_DIV_4   (0x2 << 4)
 
#define AD7791_FILTER_CLK_DIV_8   (0x3 << 4)
 
#define AD7791_FILTER_CLK_MASK   (0x3 << 4)
 
#define AD7791_FILTER_RATE_120   0x0
 
#define AD7791_FILTER_RATE_100   0x1
 
#define AD7791_FILTER_RATE_33_3   0x2
 
#define AD7791_FILTER_RATE_20   0x3
 
#define AD7791_FILTER_RATE_16_6   0x4
 
#define AD7791_FILTER_RATE_16_7   0x5
 
#define AD7791_FILTER_RATE_13_3   0x6
 
#define AD7791_FILTER_RATE_9_5   0x7
 
#define AD7791_FILTER_RATE_MASK   0x7
 
#define AD7791_MODE_BUFFER   BIT(1)
 
#define AD7791_MODE_UNIPOLAR   BIT(2)
 
#define AD7791_MODE_BURNOUT   BIT(3)
 
#define AD7791_MODE_SEL_MASK   (0x3 << 6)
 
#define AD7791_MODE_SEL(x)   ((x) << 6)
 
#define DECLARE_AD7787_CHANNELS(name, bits, storagebits)
 
#define DECLARE_AD7791_CHANNELS(name, bits, storagebits)
 

Enumerations

enum  {
  AD7787, AD7788, AD7789, AD7790,
  AD7791
}
 
enum  ad7791_chip_info_flags { AD7791_FLAG_HAS_FILTER = (1 << 0), AD7791_FLAG_HAS_BUFFER = (1 << 1), AD7791_FLAG_HAS_UNIPOLAR = (1 << 2), AD7791_FLAG_HAS_BURNOUT = (1 << 3) }
 

Functions

 MODULE_DEVICE_TABLE (spi, ad7791_spi_ids)
 
 module_spi_driver (ad7791_driver)
 
 MODULE_AUTHOR ("Lars-Peter Clausen <[email protected]>")
 
 MODULE_DESCRIPTION ("Analog Device AD7787/AD7788/AD7789/AD7790/AD7791 ADC driver")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define AD7791_CH_AIN1N_AIN1N   0x02

Definition at line 44 of file ad7791.c.

#define AD7791_CH_AIN1P_AIN1N   0x00

Definition at line 42 of file ad7791.c.

#define AD7791_CH_AIN2   0x01

Definition at line 43 of file ad7791.c.

#define AD7791_CH_AVDD_MONITOR   0x03

Definition at line 45 of file ad7791.c.

#define AD7791_FILTER_CLK_DIV_1   (0x0 << 4)

Definition at line 47 of file ad7791.c.

#define AD7791_FILTER_CLK_DIV_2   (0x1 << 4)

Definition at line 48 of file ad7791.c.

#define AD7791_FILTER_CLK_DIV_4   (0x2 << 4)

Definition at line 49 of file ad7791.c.

#define AD7791_FILTER_CLK_DIV_8   (0x3 << 4)

Definition at line 50 of file ad7791.c.

#define AD7791_FILTER_CLK_MASK   (0x3 << 4)

Definition at line 51 of file ad7791.c.

#define AD7791_FILTER_RATE_100   0x1

Definition at line 53 of file ad7791.c.

#define AD7791_FILTER_RATE_120   0x0

Definition at line 52 of file ad7791.c.

#define AD7791_FILTER_RATE_13_3   0x6

Definition at line 58 of file ad7791.c.

#define AD7791_FILTER_RATE_16_6   0x4

Definition at line 56 of file ad7791.c.

#define AD7791_FILTER_RATE_16_7   0x5

Definition at line 57 of file ad7791.c.

#define AD7791_FILTER_RATE_20   0x3

Definition at line 55 of file ad7791.c.

#define AD7791_FILTER_RATE_33_3   0x2

Definition at line 54 of file ad7791.c.

#define AD7791_FILTER_RATE_9_5   0x7

Definition at line 59 of file ad7791.c.

#define AD7791_FILTER_RATE_MASK   0x7

Definition at line 60 of file ad7791.c.

#define AD7791_MODE_BUFFER   BIT(1)

Definition at line 62 of file ad7791.c.

#define AD7791_MODE_BURNOUT   BIT(3)

Definition at line 64 of file ad7791.c.

#define AD7791_MODE_CONTINUOUS   0x00

Definition at line 38 of file ad7791.c.

#define AD7791_MODE_POWERDOWN   0x03

Definition at line 40 of file ad7791.c.

#define AD7791_MODE_SEL (   x)    ((x) << 6)

Definition at line 66 of file ad7791.c.

#define AD7791_MODE_SEL_MASK   (0x3 << 6)

Definition at line 65 of file ad7791.c.

#define AD7791_MODE_SINGLE   0x02

Definition at line 39 of file ad7791.c.

#define AD7791_MODE_UNIPOLAR   BIT(2)

Definition at line 63 of file ad7791.c.

#define AD7791_REG_COMM   0x0 /* For writes */

Definition at line 32 of file ad7791.c.

#define AD7791_REG_DATA   0x3

Definition at line 36 of file ad7791.c.

#define AD7791_REG_FILTER   0x2

Definition at line 35 of file ad7791.c.

#define AD7791_REG_MODE   0x1

Definition at line 34 of file ad7791.c.

#define AD7791_REG_STATUS   0x0 /* For reads */

Definition at line 33 of file ad7791.c.

#define DECLARE_AD7787_CHANNELS (   name,
  bits,
  storagebits 
)
Value:
const struct iio_chan_spec name[] = { \
AD_SD_DIFF_CHANNEL(0, 0, 0, AD7791_CH_AIN1P_AIN1N, \
(bits), (storagebits), 0), \
AD_SD_CHANNEL(1, 1, AD7791_CH_AIN2, (bits), (storagebits), 0), \
AD_SD_SHORTED_CHANNEL(2, 0, AD7791_CH_AIN1N_AIN1N, \
(bits), (storagebits), 0), \
AD_SD_SUPPLY_CHANNEL(3, 2, AD7791_CH_AVDD_MONITOR, \
(bits), (storagebits), 0), \
IIO_CHAN_SOFT_TIMESTAMP(4), \
}

Definition at line 68 of file ad7791.c.

#define DECLARE_AD7791_CHANNELS (   name,
  bits,
  storagebits 
)
Value:
const struct iio_chan_spec name[] = { \
AD_SD_DIFF_CHANNEL(0, 0, 0, AD7791_CH_AIN1P_AIN1N, \
(bits), (storagebits), 0), \
AD_SD_SHORTED_CHANNEL(1, 0, AD7791_CH_AIN1N_AIN1N, \
(bits), (storagebits), 0), \
AD_SD_SUPPLY_CHANNEL(2, 1, AD7791_CH_AVDD_MONITOR, \
(bits), (storagebits), 0), \
IIO_CHAN_SOFT_TIMESTAMP(3), \
}

Definition at line 80 of file ad7791.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
AD7787 
AD7788 
AD7789 
AD7790 
AD7791 

Definition at line 95 of file ad7791.c.

Enumerator:
AD7791_FLAG_HAS_FILTER 
AD7791_FLAG_HAS_BUFFER 
AD7791_FLAG_HAS_UNIPOLAR 
AD7791_FLAG_HAS_BURNOUT 

Definition at line 103 of file ad7791.c.

Function Documentation

MODULE_AUTHOR ( "Lars-Peter Clausen <[email protected]>"  )
MODULE_DESCRIPTION ( "Analog Device AD7787/AD7788/AD7789/AD7790/AD7791 ADC driver )
MODULE_DEVICE_TABLE ( spi  ,
ad7791_spi_ids   
)
MODULE_LICENSE ( "GPL v2 )
module_spi_driver ( ad7791_driver  )