Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
i2c-at91.c File Reference
#include <linux/clk.h>
#include <linux/completion.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_i2c.h>
#include <linux/platform_device.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  at91_twi_pdata
 
struct  at91_twi_dev
 

Macros

#define TWI_CLK_HZ   100000 /* max 400 Kbits/s */
 
#define AT91_I2C_TIMEOUT   msecs_to_jiffies(100) /* transfer timeout */
 
#define AT91_TWI_CR   0x0000 /* Control Register */
 
#define AT91_TWI_START   0x0001 /* Send a Start Condition */
 
#define AT91_TWI_STOP   0x0002 /* Send a Stop Condition */
 
#define AT91_TWI_MSEN   0x0004 /* Master Transfer Enable */
 
#define AT91_TWI_SVDIS   0x0020 /* Slave Transfer Disable */
 
#define AT91_TWI_QUICK   0x0040 /* SMBus quick command */
 
#define AT91_TWI_SWRST   0x0080 /* Software Reset */
 
#define AT91_TWI_MMR   0x0004 /* Master Mode Register */
 
#define AT91_TWI_IADRSZ_1   0x0100 /* Internal Device Address Size */
 
#define AT91_TWI_MREAD   0x1000 /* Master Read Direction */
 
#define AT91_TWI_IADR   0x000c /* Internal Address Register */
 
#define AT91_TWI_CWGR   0x0010 /* Clock Waveform Generator Reg */
 
#define AT91_TWI_SR   0x0020 /* Status Register */
 
#define AT91_TWI_TXCOMP   0x0001 /* Transmission Complete */
 
#define AT91_TWI_RXRDY   0x0002 /* Receive Holding Register Ready */
 
#define AT91_TWI_TXRDY   0x0004 /* Transmit Holding Register Ready */
 
#define AT91_TWI_OVRE   0x0040 /* Overrun Error */
 
#define AT91_TWI_UNRE   0x0080 /* Underrun Error */
 
#define AT91_TWI_NACK   0x0100 /* Not Acknowledged */
 
#define AT91_TWI_IER   0x0024 /* Interrupt Enable Register */
 
#define AT91_TWI_IDR   0x0028 /* Interrupt Disable Register */
 
#define AT91_TWI_IMR   0x002c /* Interrupt Mask Register */
 
#define AT91_TWI_RHR   0x0030 /* Receive Holding Register */
 
#define AT91_TWI_THR   0x0034 /* Transmit Holding Register */
 
#define atmel_twi_dt_ids   NULL
 
#define at91_twi_pm_ops   NULL
 

Functions

 subsys_initcall (at91_twi_init)
 
 module_exit (at91_twi_exit)
 
 MODULE_AUTHOR ("Nikolaus Voss <[email protected]>")
 
 MODULE_DESCRIPTION ("I2C (TWI) driver for Atmel AT91")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:at91_i2c")
 

Macro Definition Documentation

#define AT91_I2C_TIMEOUT   msecs_to_jiffies(100) /* transfer timeout */

Definition at line 34 of file i2c-at91.c.

#define AT91_TWI_CR   0x0000 /* Control Register */

Definition at line 37 of file i2c-at91.c.

#define AT91_TWI_CWGR   0x0010 /* Clock Waveform Generator Reg */

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

#define AT91_TWI_IADR   0x000c /* Internal Address Register */

Definition at line 49 of file i2c-at91.c.

#define AT91_TWI_IADRSZ_1   0x0100 /* Internal Device Address Size */

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

#define AT91_TWI_IDR   0x0028 /* Interrupt Disable Register */

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

#define AT91_TWI_IER   0x0024 /* Interrupt Enable Register */

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

#define AT91_TWI_IMR   0x002c /* Interrupt Mask Register */

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

#define AT91_TWI_MMR   0x0004 /* Master Mode Register */

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

#define AT91_TWI_MREAD   0x1000 /* Master Read Direction */

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

#define AT91_TWI_MSEN   0x0004 /* Master Transfer Enable */

Definition at line 40 of file i2c-at91.c.

#define AT91_TWI_NACK   0x0100 /* Not Acknowledged */

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

#define AT91_TWI_OVRE   0x0040 /* Overrun Error */

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

#define at91_twi_pm_ops   NULL

Definition at line 528 of file i2c-at91.c.

#define AT91_TWI_QUICK   0x0040 /* SMBus quick command */

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

#define AT91_TWI_RHR   0x0030 /* Receive Holding Register */

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

#define AT91_TWI_RXRDY   0x0002 /* Receive Holding Register Ready */

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

#define AT91_TWI_SR   0x0020 /* Status Register */

Definition at line 53 of file i2c-at91.c.

#define AT91_TWI_START   0x0001 /* Send a Start Condition */

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

#define AT91_TWI_STOP   0x0002 /* Send a Stop Condition */

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

#define AT91_TWI_SVDIS   0x0020 /* Slave Transfer Disable */

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

#define AT91_TWI_SWRST   0x0080 /* Software Reset */

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

#define AT91_TWI_THR   0x0034 /* Transmit Holding Register */

Definition at line 66 of file i2c-at91.c.

#define AT91_TWI_TXCOMP   0x0001 /* Transmission Complete */

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

#define AT91_TWI_TXRDY   0x0004 /* Transmit Holding Register Ready */

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

#define AT91_TWI_UNRE   0x0080 /* Underrun Error */

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

#define atmel_twi_dt_ids   NULL

Definition at line 405 of file i2c-at91.c.

#define TWI_CLK_HZ   100000 /* max 400 Kbits/s */

Definition at line 33 of file i2c-at91.c.

Function Documentation

MODULE_ALIAS ( "platform:at91_i2c"  )
MODULE_AUTHOR ( "Nikolaus Voss <[email protected]>"  )
MODULE_DESCRIPTION ( "I2C (TWI) driver for Atmel AT91"  )
module_exit ( at91_twi_exit  )
MODULE_LICENSE ( "GPL"  )
subsys_initcall ( at91_twi_init  )