Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
i2c-mxs.c File Reference
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/completion.h>
#include <linux/platform_device.h>
#include <linux/jiffies.h>
#include <linux/io.h>
#include <linux/pinctrl/consumer.h>
#include <linux/stmp_device.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_i2c.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/fsl/mxs-dma.h>

Go to the source code of this file.

Data Structures

struct  mxs_i2c_speed_config
 
struct  mxs_i2c_dev
 

Macros

#define DRIVER_NAME   "mxs-i2c"
 
#define MXS_I2C_CTRL0   (0x00)
 
#define MXS_I2C_CTRL0_SET   (0x04)
 
#define MXS_I2C_CTRL0_SFTRST   0x80000000
 
#define MXS_I2C_CTRL0_SEND_NAK_ON_LAST   0x02000000
 
#define MXS_I2C_CTRL0_RETAIN_CLOCK   0x00200000
 
#define MXS_I2C_CTRL0_POST_SEND_STOP   0x00100000
 
#define MXS_I2C_CTRL0_PRE_SEND_START   0x00080000
 
#define MXS_I2C_CTRL0_MASTER_MODE   0x00020000
 
#define MXS_I2C_CTRL0_DIRECTION   0x00010000
 
#define MXS_I2C_CTRL0_XFER_COUNT(v)   ((v) & 0x0000FFFF)
 
#define MXS_I2C_TIMING0   (0x10)
 
#define MXS_I2C_TIMING1   (0x20)
 
#define MXS_I2C_TIMING2   (0x30)
 
#define MXS_I2C_CTRL1   (0x40)
 
#define MXS_I2C_CTRL1_SET   (0x44)
 
#define MXS_I2C_CTRL1_CLR   (0x48)
 
#define MXS_I2C_CTRL1_BUS_FREE_IRQ   0x80
 
#define MXS_I2C_CTRL1_DATA_ENGINE_CMPLT_IRQ   0x40
 
#define MXS_I2C_CTRL1_NO_SLAVE_ACK_IRQ   0x20
 
#define MXS_I2C_CTRL1_OVERSIZE_XFER_TERM_IRQ   0x10
 
#define MXS_I2C_CTRL1_EARLY_TERM_IRQ   0x08
 
#define MXS_I2C_CTRL1_MASTER_LOSS_IRQ   0x04
 
#define MXS_I2C_CTRL1_SLAVE_STOP_IRQ   0x02
 
#define MXS_I2C_CTRL1_SLAVE_IRQ   0x01
 
#define MXS_I2C_IRQ_MASK
 
#define MXS_CMD_I2C_SELECT
 
#define MXS_CMD_I2C_WRITE
 
#define MXS_CMD_I2C_READ
 

Functions

 MODULE_DEVICE_TABLE (of, mxs_i2c_dt_ids)
 
 subsys_initcall (mxs_i2c_init)
 
 module_exit (mxs_i2c_exit)
 
 MODULE_AUTHOR ("Wolfram Sang <[email protected]>")
 
 MODULE_DESCRIPTION ("MXS I2C Bus Driver")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:"DRIVER_NAME)
 

Macro Definition Documentation

#define DRIVER_NAME   "mxs-i2c"

Definition at line 36 of file i2c-mxs.c.

#define MXS_CMD_I2C_READ
Value:
MXS_I2C_CTRL0_MASTER_MODE)

Definition at line 85 of file i2c-mxs.c.

#define MXS_CMD_I2C_SELECT
Value:
MXS_I2C_CTRL0_PRE_SEND_START | \
MXS_I2C_CTRL0_MASTER_MODE | \
MXS_I2C_CTRL0_DIRECTION | \
MXS_I2C_CTRL0_XFER_COUNT(1))

Definition at line 75 of file i2c-mxs.c.

#define MXS_CMD_I2C_WRITE
Value:
MXS_I2C_CTRL0_MASTER_MODE | \
MXS_I2C_CTRL0_DIRECTION)

Definition at line 81 of file i2c-mxs.c.

#define MXS_I2C_CTRL0   (0x00)

Definition at line 38 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_DIRECTION   0x00010000

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

#define MXS_I2C_CTRL0_MASTER_MODE   0x00020000

Definition at line 46 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_POST_SEND_STOP   0x00100000

Definition at line 44 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_PRE_SEND_START   0x00080000

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

#define MXS_I2C_CTRL0_RETAIN_CLOCK   0x00200000

Definition at line 43 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_SEND_NAK_ON_LAST   0x02000000

Definition at line 42 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_SET   (0x04)

Definition at line 39 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_SFTRST   0x80000000

Definition at line 41 of file i2c-mxs.c.

#define MXS_I2C_CTRL0_XFER_COUNT (   v)    ((v) & 0x0000FFFF)

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

#define MXS_I2C_CTRL1   (0x40)

Definition at line 54 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_BUS_FREE_IRQ   0x80

Definition at line 58 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_CLR   (0x48)

Definition at line 56 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_DATA_ENGINE_CMPLT_IRQ   0x40

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

#define MXS_I2C_CTRL1_EARLY_TERM_IRQ   0x08

Definition at line 62 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_MASTER_LOSS_IRQ   0x04

Definition at line 63 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_NO_SLAVE_ACK_IRQ   0x20

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

#define MXS_I2C_CTRL1_OVERSIZE_XFER_TERM_IRQ   0x10

Definition at line 61 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_SET   (0x44)

Definition at line 55 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_SLAVE_IRQ   0x01

Definition at line 65 of file i2c-mxs.c.

#define MXS_I2C_CTRL1_SLAVE_STOP_IRQ   0x02

Definition at line 64 of file i2c-mxs.c.

#define MXS_I2C_IRQ_MASK
Value:
MXS_I2C_CTRL1_NO_SLAVE_ACK_IRQ | \
MXS_I2C_CTRL1_EARLY_TERM_IRQ | \
MXS_I2C_CTRL1_MASTER_LOSS_IRQ | \
MXS_I2C_CTRL1_SLAVE_STOP_IRQ | \
MXS_I2C_CTRL1_SLAVE_IRQ)

Definition at line 67 of file i2c-mxs.c.

#define MXS_I2C_TIMING0   (0x10)

Definition at line 50 of file i2c-mxs.c.

#define MXS_I2C_TIMING1   (0x20)

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

#define MXS_I2C_TIMING2   (0x30)

Definition at line 52 of file i2c-mxs.c.

Function Documentation

MODULE_ALIAS ( "platform:"  DRIVER_NAME)
MODULE_AUTHOR ( "Wolfram Sang <[email protected]>"  )
MODULE_DESCRIPTION ( "MXS I2C Bus Driver"  )
MODULE_DEVICE_TABLE ( of  ,
mxs_i2c_dt_ids   
)
module_exit ( mxs_i2c_exit  )
MODULE_LICENSE ( "GPL"  )
subsys_initcall ( mxs_i2c_init  )