Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
ad5933.c File Reference
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/sysfs.h>
#include <linux/i2c.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/err.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <asm/div64.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/buffer.h>
#include "../ring_sw.h"
#include "ad5933.h"

Go to the source code of this file.

Data Structures

struct  ad5933_state
 

Macros

#define AD5933_REG_CONTROL_HB   0x80 /* R/W, 2 bytes */
 
#define AD5933_REG_CONTROL_LB   0x81 /* R/W, 2 bytes */
 
#define AD5933_REG_FREQ_START   0x82 /* R/W, 3 bytes */
 
#define AD5933_REG_FREQ_INC   0x85 /* R/W, 3 bytes */
 
#define AD5933_REG_INC_NUM   0x88 /* R/W, 2 bytes, 9 bit */
 
#define AD5933_REG_SETTLING_CYCLES   0x8A /* R/W, 2 bytes */
 
#define AD5933_REG_STATUS   0x8F /* R, 1 byte */
 
#define AD5933_REG_TEMP_DATA   0x92 /* R, 2 bytes*/
 
#define AD5933_REG_REAL_DATA   0x94 /* R, 2 bytes*/
 
#define AD5933_REG_IMAG_DATA   0x96 /* R, 2 bytes*/
 
#define AD5933_CTRL_INIT_START_FREQ   (0x1 << 4)
 
#define AD5933_CTRL_START_SWEEP   (0x2 << 4)
 
#define AD5933_CTRL_INC_FREQ   (0x3 << 4)
 
#define AD5933_CTRL_REPEAT_FREQ   (0x4 << 4)
 
#define AD5933_CTRL_MEASURE_TEMP   (0x9 << 4)
 
#define AD5933_CTRL_POWER_DOWN   (0xA << 4)
 
#define AD5933_CTRL_STANDBY   (0xB << 4)
 
#define AD5933_CTRL_RANGE_2000mVpp   (0x0 << 1)
 
#define AD5933_CTRL_RANGE_200mVpp   (0x1 << 1)
 
#define AD5933_CTRL_RANGE_400mVpp   (0x2 << 1)
 
#define AD5933_CTRL_RANGE_1000mVpp   (0x3 << 1)
 
#define AD5933_CTRL_RANGE(x)   ((x) << 1)
 
#define AD5933_CTRL_PGA_GAIN_1   (0x1 << 0)
 
#define AD5933_CTRL_PGA_GAIN_5   (0x0 << 0)
 
#define AD5933_CTRL_RESET   (0x1 << 4)
 
#define AD5933_CTRL_INT_SYSCLK   (0x0 << 3)
 
#define AD5933_CTRL_EXT_SYSCLK   (0x1 << 3)
 
#define AD5933_STAT_TEMP_VALID   (0x1 << 0)
 
#define AD5933_STAT_DATA_VALID   (0x1 << 1)
 
#define AD5933_STAT_SWEEP_DONE   (0x1 << 2)
 
#define AD5933_I2C_BLOCK_WRITE   0xA0
 
#define AD5933_I2C_BLOCK_READ   0xA1
 
#define AD5933_I2C_ADDR_POINTER   0xB0
 
#define AD5933_INT_OSC_FREQ_Hz   16776000
 
#define AD5933_MAX_OUTPUT_FREQ_Hz   100000
 
#define AD5933_MAX_RETRIES   100
 
#define AD5933_OUT_RANGE   1
 
#define AD5933_OUT_RANGE_AVAIL   2
 
#define AD5933_OUT_SETTLING_CYCLES   3
 
#define AD5933_IN_PGA_GAIN   4
 
#define AD5933_IN_PGA_GAIN_AVAIL   5
 
#define AD5933_FREQ_POINTS   6
 
#define AD5933_POLL_TIME_ms   10
 
#define AD5933_INIT_EXCITATION_TIME_ms   100
 

Functions

 MODULE_DEVICE_TABLE (i2c, ad5933_id)
 
 module_i2c_driver (ad5933_driver)
 
 MODULE_AUTHOR ("Michael Hennerich <[email protected]>")
 
 MODULE_DESCRIPTION ("Analog Devices AD5933 Impedance Conv. Network Analyzer")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define AD5933_CTRL_EXT_SYSCLK   (0x1 << 3)

Definition at line 62 of file ad5933.c.

#define AD5933_CTRL_INC_FREQ   (0x3 << 4)

Definition at line 44 of file ad5933.c.

#define AD5933_CTRL_INIT_START_FREQ   (0x1 << 4)

Definition at line 42 of file ad5933.c.

#define AD5933_CTRL_INT_SYSCLK   (0x0 << 3)

Definition at line 61 of file ad5933.c.

#define AD5933_CTRL_MEASURE_TEMP   (0x9 << 4)

Definition at line 46 of file ad5933.c.

#define AD5933_CTRL_PGA_GAIN_1   (0x1 << 0)

Definition at line 56 of file ad5933.c.

#define AD5933_CTRL_PGA_GAIN_5   (0x0 << 0)

Definition at line 57 of file ad5933.c.

#define AD5933_CTRL_POWER_DOWN   (0xA << 4)

Definition at line 47 of file ad5933.c.

#define AD5933_CTRL_RANGE (   x)    ((x) << 1)

Definition at line 54 of file ad5933.c.

#define AD5933_CTRL_RANGE_1000mVpp   (0x3 << 1)

Definition at line 53 of file ad5933.c.

#define AD5933_CTRL_RANGE_2000mVpp   (0x0 << 1)

Definition at line 50 of file ad5933.c.

#define AD5933_CTRL_RANGE_200mVpp   (0x1 << 1)

Definition at line 51 of file ad5933.c.

#define AD5933_CTRL_RANGE_400mVpp   (0x2 << 1)

Definition at line 52 of file ad5933.c.

#define AD5933_CTRL_REPEAT_FREQ   (0x4 << 4)

Definition at line 45 of file ad5933.c.

#define AD5933_CTRL_RESET   (0x1 << 4)

Definition at line 60 of file ad5933.c.

#define AD5933_CTRL_STANDBY   (0xB << 4)

Definition at line 48 of file ad5933.c.

#define AD5933_CTRL_START_SWEEP   (0x2 << 4)

Definition at line 43 of file ad5933.c.

#define AD5933_FREQ_POINTS   6

Definition at line 84 of file ad5933.c.

#define AD5933_I2C_ADDR_POINTER   0xB0

Definition at line 72 of file ad5933.c.

#define AD5933_I2C_BLOCK_READ   0xA1

Definition at line 71 of file ad5933.c.

#define AD5933_I2C_BLOCK_WRITE   0xA0

Definition at line 70 of file ad5933.c.

#define AD5933_IN_PGA_GAIN   4

Definition at line 82 of file ad5933.c.

#define AD5933_IN_PGA_GAIN_AVAIL   5

Definition at line 83 of file ad5933.c.

#define AD5933_INIT_EXCITATION_TIME_ms   100

Definition at line 87 of file ad5933.c.

#define AD5933_INT_OSC_FREQ_Hz   16776000

Definition at line 75 of file ad5933.c.

#define AD5933_MAX_OUTPUT_FREQ_Hz   100000

Definition at line 76 of file ad5933.c.

#define AD5933_MAX_RETRIES   100

Definition at line 77 of file ad5933.c.

#define AD5933_OUT_RANGE   1

Definition at line 79 of file ad5933.c.

#define AD5933_OUT_RANGE_AVAIL   2

Definition at line 80 of file ad5933.c.

#define AD5933_OUT_SETTLING_CYCLES   3

Definition at line 81 of file ad5933.c.

#define AD5933_POLL_TIME_ms   10

Definition at line 86 of file ad5933.c.

#define AD5933_REG_CONTROL_HB   0x80 /* R/W, 2 bytes */

Definition at line 30 of file ad5933.c.

#define AD5933_REG_CONTROL_LB   0x81 /* R/W, 2 bytes */

Definition at line 31 of file ad5933.c.

#define AD5933_REG_FREQ_INC   0x85 /* R/W, 3 bytes */

Definition at line 33 of file ad5933.c.

#define AD5933_REG_FREQ_START   0x82 /* R/W, 3 bytes */

Definition at line 32 of file ad5933.c.

#define AD5933_REG_IMAG_DATA   0x96 /* R, 2 bytes*/

Definition at line 39 of file ad5933.c.

#define AD5933_REG_INC_NUM   0x88 /* R/W, 2 bytes, 9 bit */

Definition at line 34 of file ad5933.c.

#define AD5933_REG_REAL_DATA   0x94 /* R, 2 bytes*/

Definition at line 38 of file ad5933.c.

#define AD5933_REG_SETTLING_CYCLES   0x8A /* R/W, 2 bytes */

Definition at line 35 of file ad5933.c.

#define AD5933_REG_STATUS   0x8F /* R, 1 byte */

Definition at line 36 of file ad5933.c.

#define AD5933_REG_TEMP_DATA   0x92 /* R, 2 bytes*/

Definition at line 37 of file ad5933.c.

#define AD5933_STAT_DATA_VALID   (0x1 << 1)

Definition at line 66 of file ad5933.c.

#define AD5933_STAT_SWEEP_DONE   (0x1 << 2)

Definition at line 67 of file ad5933.c.

#define AD5933_STAT_TEMP_VALID   (0x1 << 0)

Definition at line 65 of file ad5933.c.

Function Documentation

MODULE_AUTHOR ( "Michael Hennerich <[email protected]>"  )
MODULE_DESCRIPTION ( "Analog Devices AD5933 Impedance Conv. Network Analyzer"  )
MODULE_DEVICE_TABLE ( i2c  ,
ad5933_id   
)
module_i2c_driver ( ad5933_driver  )
MODULE_LICENSE ( "GPL v2 )