Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mxs-lradc.c File Reference
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/sysfs.h>
#include <linux/list.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#include <linux/wait.h>
#include <linux/sched.h>
#include <linux/stmp_device.h>
#include <linux/bitops.h>
#include <linux/completion.h>
#include <mach/mxs.h>
#include <mach/common.h>
#include <linux/iio/iio.h>
#include <linux/iio/buffer.h>
#include <linux/iio/trigger.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>

Go to the source code of this file.

Data Structures

struct  mxs_lradc_chan
 
struct  mxs_lradc
 

Macros

#define DRIVER_NAME   "mxs-lradc"
 
#define LRADC_MAX_DELAY_CHANS   4
 
#define LRADC_MAX_MAPPED_CHANS   8
 
#define LRADC_MAX_TOTAL_CHANS   16
 
#define LRADC_DELAY_TIMER_HZ   2000
 
#define LRADC_DELAY_TIMER_PER   200
 
#define LRADC_DELAY_TIMER_LOOP   5
 
#define LRADC_CTRL0   0x00
 
#define LRADC_CTRL0_TOUCH_DETECT_ENABLE   (1 << 23)
 
#define LRADC_CTRL0_TOUCH_SCREEN_TYPE   (1 << 22)
 
#define LRADC_CTRL1   0x10
 
#define LRADC_CTRL1_LRADC_IRQ(n)   (1 << (n))
 
#define LRADC_CTRL1_LRADC_IRQ_MASK   0x1fff
 
#define LRADC_CTRL1_LRADC_IRQ_EN(n)   (1 << ((n) + 16))
 
#define LRADC_CTRL1_LRADC_IRQ_EN_MASK   (0x1fff << 16)
 
#define LRADC_CTRL2   0x20
 
#define LRADC_CTRL2_TEMPSENSE_PWD   (1 << 15)
 
#define LRADC_CH(n)   (0x50 + (0x10 * (n)))
 
#define LRADC_CH_ACCUMULATE   (1 << 29)
 
#define LRADC_CH_NUM_SAMPLES_MASK   (0x1f << 24)
 
#define LRADC_CH_NUM_SAMPLES_OFFSET   24
 
#define LRADC_CH_VALUE_MASK   0x3ffff
 
#define LRADC_CH_VALUE_OFFSET   0
 
#define LRADC_DELAY(n)   (0xd0 + (0x10 * (n)))
 
#define LRADC_DELAY_TRIGGER_LRADCS_MASK   (0xff << 24)
 
#define LRADC_DELAY_TRIGGER_LRADCS_OFFSET   24
 
#define LRADC_DELAY_KICK   (1 << 20)
 
#define LRADC_DELAY_TRIGGER_DELAYS_MASK   (0xf << 16)
 
#define LRADC_DELAY_TRIGGER_DELAYS_OFFSET   16
 
#define LRADC_DELAY_LOOP_COUNT_MASK   (0x1f << 11)
 
#define LRADC_DELAY_LOOP_COUNT_OFFSET   11
 
#define LRADC_DELAY_DELAY_MASK   0x7ff
 
#define LRADC_DELAY_DELAY_OFFSET   0
 
#define LRADC_CTRL4   0x140
 
#define LRADC_CTRL4_LRADCSELECT_MASK(n)   (0xf << ((n) * 4))
 
#define LRADC_CTRL4_LRADCSELECT_OFFSET(n)   ((n) * 4)
 
#define MXS_ADC_CHAN(idx, chan_type)
 

Functions

 MODULE_DEVICE_TABLE (of, mxs_lradc_dt_ids)
 
 module_platform_driver (mxs_lradc_driver)
 
 MODULE_AUTHOR ("Marek Vasut <[email protected]>")
 
 MODULE_DESCRIPTION ("Freescale i.MX28 LRADC driver")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define DRIVER_NAME   "mxs-lradc"

Definition at line 45 of file mxs-lradc.c.

#define LRADC_CH (   n)    (0x50 + (0x10 * (n)))

Definition at line 111 of file mxs-lradc.c.

#define LRADC_CH_ACCUMULATE   (1 << 29)

Definition at line 112 of file mxs-lradc.c.

#define LRADC_CH_NUM_SAMPLES_MASK   (0x1f << 24)

Definition at line 113 of file mxs-lradc.c.

#define LRADC_CH_NUM_SAMPLES_OFFSET   24

Definition at line 114 of file mxs-lradc.c.

#define LRADC_CH_VALUE_MASK   0x3ffff

Definition at line 115 of file mxs-lradc.c.

#define LRADC_CH_VALUE_OFFSET   0

Definition at line 116 of file mxs-lradc.c.

#define LRADC_CTRL0   0x00

Definition at line 98 of file mxs-lradc.c.

#define LRADC_CTRL0_TOUCH_DETECT_ENABLE   (1 << 23)

Definition at line 99 of file mxs-lradc.c.

#define LRADC_CTRL0_TOUCH_SCREEN_TYPE   (1 << 22)

Definition at line 100 of file mxs-lradc.c.

#define LRADC_CTRL1   0x10

Definition at line 102 of file mxs-lradc.c.

#define LRADC_CTRL1_LRADC_IRQ (   n)    (1 << (n))

Definition at line 103 of file mxs-lradc.c.

#define LRADC_CTRL1_LRADC_IRQ_EN (   n)    (1 << ((n) + 16))

Definition at line 105 of file mxs-lradc.c.

#define LRADC_CTRL1_LRADC_IRQ_EN_MASK   (0x1fff << 16)

Definition at line 106 of file mxs-lradc.c.

#define LRADC_CTRL1_LRADC_IRQ_MASK   0x1fff

Definition at line 104 of file mxs-lradc.c.

#define LRADC_CTRL2   0x20

Definition at line 108 of file mxs-lradc.c.

#define LRADC_CTRL2_TEMPSENSE_PWD   (1 << 15)

Definition at line 109 of file mxs-lradc.c.

#define LRADC_CTRL4   0x140

Definition at line 129 of file mxs-lradc.c.

#define LRADC_CTRL4_LRADCSELECT_MASK (   n)    (0xf << ((n) * 4))

Definition at line 130 of file mxs-lradc.c.

#define LRADC_CTRL4_LRADCSELECT_OFFSET (   n)    ((n) * 4)

Definition at line 131 of file mxs-lradc.c.

#define LRADC_DELAY (   n)    (0xd0 + (0x10 * (n)))

Definition at line 118 of file mxs-lradc.c.

#define LRADC_DELAY_DELAY_MASK   0x7ff

Definition at line 126 of file mxs-lradc.c.

#define LRADC_DELAY_DELAY_OFFSET   0

Definition at line 127 of file mxs-lradc.c.

#define LRADC_DELAY_KICK   (1 << 20)

Definition at line 121 of file mxs-lradc.c.

#define LRADC_DELAY_LOOP_COUNT_MASK   (0x1f << 11)

Definition at line 124 of file mxs-lradc.c.

#define LRADC_DELAY_LOOP_COUNT_OFFSET   11

Definition at line 125 of file mxs-lradc.c.

#define LRADC_DELAY_TIMER_HZ   2000

Definition at line 51 of file mxs-lradc.c.

#define LRADC_DELAY_TIMER_LOOP   5

Definition at line 60 of file mxs-lradc.c.

#define LRADC_DELAY_TIMER_PER   200

Definition at line 59 of file mxs-lradc.c.

#define LRADC_DELAY_TRIGGER_DELAYS_MASK   (0xf << 16)

Definition at line 122 of file mxs-lradc.c.

#define LRADC_DELAY_TRIGGER_DELAYS_OFFSET   16

Definition at line 123 of file mxs-lradc.c.

#define LRADC_DELAY_TRIGGER_LRADCS_MASK   (0xff << 24)

Definition at line 119 of file mxs-lradc.c.

#define LRADC_DELAY_TRIGGER_LRADCS_OFFSET   24

Definition at line 120 of file mxs-lradc.c.

#define LRADC_MAX_DELAY_CHANS   4

Definition at line 47 of file mxs-lradc.c.

#define LRADC_MAX_MAPPED_CHANS   8

Definition at line 48 of file mxs-lradc.c.

#define LRADC_MAX_TOTAL_CHANS   16

Definition at line 49 of file mxs-lradc.c.

#define MXS_ADC_CHAN (   idx,
  chan_type 
)
Value:
{ \
.type = (chan_type), \
.indexed = 1, \
.scan_index = (idx), \
.channel = (idx), \
.scan_type = { \
.sign = 'u', \
.realbits = 18, \
.storagebits = 32, \
}, \
}

Definition at line 411 of file mxs-lradc.c.

Function Documentation

MODULE_AUTHOR ( "Marek Vasut <[email protected]>"  )
MODULE_DESCRIPTION ( "Freescale i.MX28 LRADC driver )
MODULE_DEVICE_TABLE ( of  ,
mxs_lradc_dt_ids   
)
MODULE_LICENSE ( "GPL v2 )
module_platform_driver ( mxs_lradc_driver  )