Changeset 3491
- Timestamp:
- 08/12/00 18:37:15 (13 years ago)
- Location:
- i2c/trunk
- Files:
-
- 5 modified
-
CHANGES (modified) (1 diff)
-
kernel/i2c-core.c (modified) (1 diff)
-
kernel/i2c-dev.c (modified) (1 diff)
-
kernel/i2c-dev.h (modified) (1 diff)
-
kernel/i2c.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
i2c/trunk/CHANGES
r3481 r3491 14 14 cvs diff -r V2-0-0 -r V2-0-1 -u 15 15 16 2.5.2 (200007??) 16 2.5.3 (2000????) 17 i2c-core.c, i2c-dev.c, i2c-dev.h, i2c.h: Add i2c block read/write support 18 19 2.5.2 (20000709) 17 20 i2c-philips-par: Now compiles on all 2.2 kernels 18 21 i2c-core: Corrected some SMBus block commands-related stuff -
i2c/trunk/kernel/i2c-core.c
r3482 r3491 1110 1110 } 1111 1111 1112 extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client, 1113 u8 command, u8 length, u8 *values) 1114 { 1115 union i2c_smbus_data data; 1116 int i; 1117 if (length > 32) 1118 length = 32; 1119 for (i = 1; i <= length; i++) 1120 data.block[i] = values[i-1]; 1121 data.block[0] = length; 1122 return i2c_smbus_xfer(client->adapter,client->addr,client->flags, 1123 I2C_SMBUS_WRITE,command, 1124 I2C_SMBUS_I2C_BLOCK_DATA,&data); 1125 } 1126 1112 1127 /* Simulate a SMBus command using the i2c protocol 1113 1128 No checking of parameters is done! */ -
i2c/trunk/kernel/i2c-dev.c
r3487 r3491 294 294 (data_arg.size != I2C_SMBUS_WORD_DATA) && 295 295 (data_arg.size != I2C_SMBUS_PROC_CALL) && 296 (data_arg.size != I2C_SMBUS_BLOCK_DATA)) { 296 (data_arg.size != I2C_SMBUS_BLOCK_DATA) && 297 (data_arg.size != I2C_SMBUS_I2C_BLOCK_DATA)) { 297 298 #ifdef DEBUG 298 299 printk("i2c-dev.o: size out of range (%x) in ioctl I2C_SMBUS.\n", -
i2c/trunk/kernel/i2c-dev.h
r3450 r3491 163 163 } 164 164 165 extern inline __s32 i2c_smbus_write_i2c_block_data(int file, __u8 command, 166 __u8 length, __u8 *values) 167 { 168 union i2c_smbus_data data; 169 int i; 170 if (length > 32) 171 length = 32; 172 for (i = 1; i <= length; i++) 173 data.block[i] = values[i-1]; 174 data.block[0] = length; 175 return i2c_smbus_access(file,I2C_SMBUS_WRITE,command, 176 I2C_SMBUS_I2C_BLOCK_DATA, &data); 177 } 178 165 179 #endif /* ndef __KERNEL__ */ 166 180 -
i2c/trunk/kernel/i2c.h
r3486 r3491 121 121 u8 command, u8 length, 122 122 u8 *values); 123 extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client, 124 u8 command, u8 length, 125 u8 *values); 123 126 124 127 … … 438 441 /* SMBus transaction types (size parameter in the above functions) 439 442 Note: these no longer correspond to the (arbitrary) PIIX4 internal codes! */ 440 #define I2C_SMBUS_QUICK 0 441 #define I2C_SMBUS_BYTE 1 442 #define I2C_SMBUS_BYTE_DATA 2 443 #define I2C_SMBUS_WORD_DATA 3 444 #define I2C_SMBUS_PROC_CALL 4 445 #define I2C_SMBUS_BLOCK_DATA 5 443 #define I2C_SMBUS_QUICK 0 444 #define I2C_SMBUS_BYTE 1 445 #define I2C_SMBUS_BYTE_DATA 2 446 #define I2C_SMBUS_WORD_DATA 3 447 #define I2C_SMBUS_PROC_CALL 4 448 #define I2C_SMBUS_BLOCK_DATA 5 449 #define I2C_SMBUS_I2C_BLOCK_DATA 6 446 450 447 451
