//
// Description: Register bus structure
//
-int i2c_iic_add_bus(struct i2c_adapter *adap)
+int i2c_ocp_add_bus(struct i2c_adapter *adap)
{
struct i2c_algo_iic_data *iic_adap = adap->algo_data;
//
// Done
//
-int i2c_iic_del_bus(struct i2c_adapter *adap)
+int i2c_ocp_del_bus(struct i2c_adapter *adap)
{
int res;
if ((res = i2c_del_adapter(adap)) < 0)
}
-EXPORT_SYMBOL(i2c_iic_add_bus);
-EXPORT_SYMBOL(i2c_iic_del_bus);
+EXPORT_SYMBOL(i2c_ocp_add_bus);
+EXPORT_SYMBOL(i2c_ocp_del_bus);
//
// The MODULE_* macros resolve to nothing if MODULES is not defined
#define I2C_IIC_ADAP_MAX 16
-int i2c_iic_add_bus(struct i2c_adapter *);
-int i2c_iic_del_bus(struct i2c_adapter *);
+int i2c_ocp_add_bus(struct i2c_adapter *);
+int i2c_ocp_del_bus(struct i2c_adapter *);
#endif /* I2C_ALGO_IIC_H */
struct inode *inode = file->f_dentry->d_inode;
#endif /* DEBUG */
- if(count > 8192)
+ if (count > 8192)
count = 8192;
-
+
/* copy user space data to kernel space. */
tmp = kmalloc(count,GFP_KERNEL);
if (tmp==NULL)
struct i2c_adapter *adapter, int addr)
{
char name_buffer[50];
- int id;
+ int id, i, end;
if (i2c_is_isa_adapter(adapter))
sprintf(name_buffer, "%s-isa-%04x", prefix, addr);
- else {
+ else if (!adapter->algo->smbus_xfer && !adapter->algo->master_xfer) {
+ /* dummy adapter, generate prefix */
+ sprintf(name_buffer, "%s-", prefix);
+ end = strlen(name_buffer);
+ for(i = 0; i < 32; i++) {
+ if(adapter->algo->name[i] == ' ')
+ break;
+ name_buffer[end++] = tolower(adapter->algo->name[i]);
+ }
+ name_buffer[end] = 0;
+ sprintf(name_buffer + end, "-%04x", addr);
+ } else {
if ((id = i2c_adapter_id(adapter)) < 0)
return -ENOENT;
sprintf(name_buffer, "%s-i2c-%d-%02x", prefix, id, addr);
int (*getscl) (void *data);
/* local settings */
- int udelay;
- int mdelay;
- int timeout;
+ int udelay; /* half-clock-cycle time in microsecs */
+ /* i.e. clock is (500 / udelay) KHz */
+ int mdelay; /* in millisecs, unused */
+ int timeout; /* in jiffies */
};
#define I2C_BIT_ADAP_MAX 16
#define I2C_DRIVERID_LM92 1033
#define I2C_DRIVERID_VT8231 1034
#define I2C_DRIVERID_SMARTBATT 1035
+#define I2C_DRIVERID_BMCSENSORS 1036
+#define I2C_DRIVERID_FS451 1037
/*
* ---- Adapter types ----------------------------------------------------
#define I2C_ALGO_IIC 0x080000 /* ITE IIC bus */
#define I2C_ALGO_SAA7134 0x090000
#define I2C_ALGO_MPC824X 0x0a0000 /* Motorola 8240 / 8245 */
+#define I2C_ALGO_IPMI 0x0b0000 /* IPMI dummy adapter */
+#define I2C_ALGO_IPMB 0x0c0000 /* IPMB adapter */
#define I2C_ALGO_EC 0x100000 /* ACPI embedded controller */
#define I2C_ALGO_MPC8XX 0x110000 /* MPC8xx PowerPC I2C algorithm */
#define I2C_HW_B_VOO 0x0b /* 3dfx Voodoo 3 / Banshee */
#define I2C_HW_B_PPORT 0x0c /* Primitive parallel port adapter */
#define I2C_HW_B_SAVG 0x0d /* Savage 4 */
+#define I2C_HW_B_SCX200 0x0e /* Nat'l Semi SCx200 I2C */
#define I2C_HW_B_RIVA 0x10 /* Riva based graphics cards */
#define I2C_HW_B_IOC 0x11 /* IOC bit-wiggling */
#define I2C_HW_B_TSUNA 0x12 /* DEC Tsunami chipset */
#define I2C_HW_SMBUS_SIS630 0x08
#define I2C_HW_SMBUS_SIS645 0x09
#define I2C_HW_SMBUS_AMD8111 0x0a
+#define I2C_HW_SMBUS_SCX200 0x0b
/* --- ISA pseudo-adapter */
#define I2C_HW_ISA 0x00
+/* --- IPMI pseudo-adapter */
+#define I2C_HW_IPMI 0x00
+
+/* --- IPMB adapter */
+#define I2C_HW_IPMB 0x00
+
#endif /* I2C_ID_H */
#define I2C_M_RD 0x01
#define I2C_M_NOSTART 0x4000
#define I2C_M_REV_DIR_ADDR 0x2000
+#define I2C_M_IGNORE_NAK 0x1000
+#define I2C_M_NO_RD_ACK 0x0800
short len; /* msg length */
char *buf; /* pointer to msg data */
};
#define I2C_FUNC_I2C 0x00000001
#define I2C_FUNC_10BIT_ADDR 0x00000002
-#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART} */
+#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART,..} */
#define I2C_FUNC_SMBUS_HWPEC_CALC 0x00000008 /* SMBus 2.0 */
#define I2C_FUNC_SMBUS_READ_WORD_DATA_PEC 0x00000800 /* SMBus 2.0 */
#define I2C_FUNC_SMBUS_WRITE_WORD_DATA_PEC 0x00001000 /* SMBus 2.0 */