193,97 → 193,6 |
|
#define EDID_PRODUCT_ID(e) ((e)->prod_code[0] | ((e)->prod_code[1] << 8)) |
|
#define KOBJ_NAME_LEN 20 |
|
#define I2C_NAME_SIZE 20 |
|
|
/* --- Defines for bit-adapters --------------------------------------- */ |
/* |
* This struct contains the hw-dependent functions of bit-style adapters to |
* manipulate the line states, and to init any hw-specific features. This is |
* only used if you have more than one hw-type of adapter running. |
*/ |
struct i2c_algo_bit_data { |
void *data; /* private data for lowlevel routines */ |
void (*setsda) (void *data, int state); |
void (*setscl) (void *data, int state); |
int (*getsda) (void *data); |
int (*getscl) (void *data); |
|
/* local settings */ |
int udelay; /* half clock cycle time in us, |
minimum 2 us for fast-mode I2C, |
minimum 5 us for standard-mode I2C and SMBus, |
maximum 50 us for SMBus */ |
int timeout; /* in jiffies */ |
}; |
|
struct i2c_client; |
/* |
* i2c_adapter is the structure used to identify a physical i2c bus along |
* with the access algorithms necessary to access it. |
*/ |
struct i2c_adapter { |
// struct module *owner; |
unsigned int id; |
unsigned int class; |
// const struct i2c_algorithm *algo; /* the algorithm to access the bus */ |
void *algo_data; |
|
/* --- administration stuff. */ |
int (*client_register)(struct i2c_client *); |
int (*client_unregister)(struct i2c_client *); |
|
/* data fields that are valid for all devices */ |
u8 level; /* nesting level for lockdep */ |
// struct mutex bus_lock; |
// struct mutex clist_lock; |
|
int timeout; |
int retries; |
// struct device dev; /* the adapter device */ |
|
int nr; |
struct list_head clients; /* DEPRECATED */ |
char name[48]; |
// struct completion dev_released; |
}; |
#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev) |
|
struct i2c_client { |
unsigned short flags; /* div., see below */ |
unsigned short addr; /* chip address - NOTE: 7bit */ |
/* addresses are stored in the */ |
/* _LOWER_ 7 bits */ |
char name[I2C_NAME_SIZE]; |
struct i2c_adapter *adapter; /* the adapter we sit on */ |
// struct i2c_driver *driver; /* and our access routines */ |
// struct device dev; /* the device structure */ |
int irq; /* irq issued by device (or -1) */ |
char driver_name[KOBJ_NAME_LEN]; |
struct list_head list; /* DEPRECATED */ |
// struct completion released; |
}; |
#define to_i2c_client(d) container_of(d, struct i2c_client, dev) |
|
int i2c_bit_add_bus(struct i2c_adapter *); |
int i2c_bit_add_numbered_bus(struct i2c_adapter *); |
|
|
struct i2c_msg { |
u16 addr; /* slave address */ |
u16 flags; |
#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ |
#define I2C_M_RD 0x0001 /* read data, from slave to master */ |
#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_PROTOCOL_MANGLING */ |
#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */ |
#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ |
#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ |
#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ |
u16 len; /* msg length */ |
u8 *buf; /* pointer to msg data */ |
}; |
|
|
#endif /* __DRM_EDID_H__ */ |