Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
i2c-mux-pca9541.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/i2c.h>
#include <linux/i2c-mux.h>
#include <linux/i2c/pca954x.h>

Go to the source code of this file.

Data Structures

struct  pca9541
 

Macros

#define PCA9541_CONTROL   0x01
 
#define PCA9541_ISTAT   0x02
 
#define PCA9541_CTL_MYBUS   (1 << 0)
 
#define PCA9541_CTL_NMYBUS   (1 << 1)
 
#define PCA9541_CTL_BUSON   (1 << 2)
 
#define PCA9541_CTL_NBUSON   (1 << 3)
 
#define PCA9541_CTL_BUSINIT   (1 << 4)
 
#define PCA9541_CTL_TESTON   (1 << 6)
 
#define PCA9541_CTL_NTESTON   (1 << 7)
 
#define PCA9541_ISTAT_INTIN   (1 << 0)
 
#define PCA9541_ISTAT_BUSINIT   (1 << 1)
 
#define PCA9541_ISTAT_BUSOK   (1 << 2)
 
#define PCA9541_ISTAT_BUSLOST   (1 << 3)
 
#define PCA9541_ISTAT_MYTEST   (1 << 6)
 
#define PCA9541_ISTAT_NMYTEST   (1 << 7)
 
#define BUSON   (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON)
 
#define MYBUS   (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS)
 
#define mybus(x)   (!((x) & MYBUS) || ((x) & MYBUS) == MYBUS)
 
#define busoff(x)   (!((x) & BUSON) || ((x) & BUSON) == BUSON)
 
#define ARB_TIMEOUT   (HZ / 8) /* 125 ms until forcing bus ownership */
 
#define ARB2_TIMEOUT   (HZ / 4) /* 250 ms until acquisition failure */
 
#define SELECT_DELAY_SHORT   50
 
#define SELECT_DELAY_LONG   1000
 

Functions

 MODULE_DEVICE_TABLE (i2c, pca9541_id)
 
 module_i2c_driver (pca9541_driver)
 
 MODULE_AUTHOR ("Guenter Roeck <[email protected]>")
 
 MODULE_DESCRIPTION ("PCA9541 I2C master selector driver")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define ARB2_TIMEOUT   (HZ / 4) /* 250 ms until acquisition failure */

Definition at line 70 of file i2c-mux-pca9541.c.

#define ARB_TIMEOUT   (HZ / 8) /* 125 ms until forcing bus ownership */

Definition at line 69 of file i2c-mux-pca9541.c.

#define busoff (   x)    (!((x) & BUSON) || ((x) & BUSON) == BUSON)

Definition at line 66 of file i2c-mux-pca9541.c.

#define BUSON   (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON)

Definition at line 63 of file i2c-mux-pca9541.c.

#define MYBUS   (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS)

Definition at line 64 of file i2c-mux-pca9541.c.

#define mybus (   x)    (!((x) & MYBUS) || ((x) & MYBUS) == MYBUS)

Definition at line 65 of file i2c-mux-pca9541.c.

#define PCA9541_CONTROL   0x01

Definition at line 45 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_BUSINIT   (1 << 4)

Definition at line 52 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_BUSON   (1 << 2)

Definition at line 50 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_MYBUS   (1 << 0)

Definition at line 48 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_NBUSON   (1 << 3)

Definition at line 51 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_NMYBUS   (1 << 1)

Definition at line 49 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_NTESTON   (1 << 7)

Definition at line 54 of file i2c-mux-pca9541.c.

#define PCA9541_CTL_TESTON   (1 << 6)

Definition at line 53 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT   0x02

Definition at line 46 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_BUSINIT   (1 << 1)

Definition at line 57 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_BUSLOST   (1 << 3)

Definition at line 59 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_BUSOK   (1 << 2)

Definition at line 58 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_INTIN   (1 << 0)

Definition at line 56 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_MYTEST   (1 << 6)

Definition at line 60 of file i2c-mux-pca9541.c.

#define PCA9541_ISTAT_NMYTEST   (1 << 7)

Definition at line 61 of file i2c-mux-pca9541.c.

#define SELECT_DELAY_LONG   1000

Definition at line 74 of file i2c-mux-pca9541.c.

#define SELECT_DELAY_SHORT   50

Definition at line 73 of file i2c-mux-pca9541.c.

Function Documentation

MODULE_AUTHOR ( "Guenter Roeck <[email protected]>"  )
MODULE_DESCRIPTION ( "PCA9541 I2C master selector driver )
MODULE_DEVICE_TABLE ( i2c  ,
pca9541_id   
)
module_i2c_driver ( pca9541_driver  )
MODULE_LICENSE ( "GPL v2 )