| 73 | | if (i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| 74 | | I2C_SMBUS_BYTE_DATA, &data)) |
| 75 | | return -1; |
| 76 | | else |
| 77 | | return 0x0FF & data.byte; |
| | 83 | int err; |
| | 84 | |
| | 85 | err = i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| | 86 | I2C_SMBUS_BYTE_DATA, &data); |
| | 87 | if (err < 0) |
| | 88 | return err; |
| | 89 | |
| | 90 | return 0x0FF & data.byte; |
| 91 | | if (i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| 92 | | I2C_SMBUS_WORD_DATA, &data)) |
| 93 | | return -1; |
| 94 | | else |
| 95 | | return 0x0FFFF & data.word; |
| | 104 | int err; |
| | 105 | |
| | 106 | err = i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| | 107 | I2C_SMBUS_WORD_DATA, &data); |
| | 108 | if (err < 0) |
| | 109 | return err; |
| | 110 | |
| | 111 | return 0x0FFFF & data.word; |
| 121 | | int i; |
| 122 | | if (i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| 123 | | I2C_SMBUS_BLOCK_DATA, &data)) |
| 124 | | return -1; |
| 125 | | else { |
| 126 | | for (i = 1; i <= data.block[0]; i++) |
| 127 | | values[i-1] = data.block[i]; |
| 128 | | return data.block[0]; |
| 129 | | } |
| | 137 | int i, err; |
| | 138 | |
| | 139 | err = i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| | 140 | I2C_SMBUS_BLOCK_DATA, &data); |
| | 141 | if (err < 0) |
| | 142 | return err; |
| | 143 | |
| | 144 | for (i = 1; i <= data.block[0]; i++) |
| | 145 | values[i-1] = data.block[i]; |
| | 146 | return data.block[0]; |
| 154 | | int i; |
| 155 | | |
| 156 | | if (length > 32) |
| 157 | | length = 32; |
| 158 | | data.block[0] = length; |
| 159 | | if (i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| 160 | | length == 32 ? I2C_SMBUS_I2C_BLOCK_BROKEN : |
| 161 | | I2C_SMBUS_I2C_BLOCK_DATA, &data)) |
| 162 | | return -1; |
| 163 | | else { |
| 164 | | for (i = 1; i <= data.block[0]; i++) |
| 165 | | values[i-1] = data.block[i]; |
| 166 | | return data.block[0]; |
| 167 | | } |
| | 171 | int i, err; |
| | 172 | |
| | 173 | if (length > 32) |
| | 174 | length = 32; |
| | 175 | data.block[0] = length; |
| | 176 | |
| | 177 | err = i2c_smbus_access(file, I2C_SMBUS_READ, command, |
| | 178 | length == 32 ? I2C_SMBUS_I2C_BLOCK_BROKEN : |
| | 179 | I2C_SMBUS_I2C_BLOCK_DATA, &data); |
| | 180 | if (err < 0) |
| | 181 | return err; |
| | 182 | |
| | 183 | for (i = 1; i <= data.block[0]; i++) |
| | 184 | values[i-1] = data.block[i]; |
| | 185 | return data.block[0]; |
| 195 | | if (i2c_smbus_access(file, I2C_SMBUS_WRITE, command, |
| 196 | | I2C_SMBUS_BLOCK_PROC_CALL, &data)) |
| 197 | | return -1; |
| 198 | | else { |
| 199 | | for (i = 1; i <= data.block[0]; i++) |
| 200 | | values[i-1] = data.block[i]; |
| 201 | | return data.block[0]; |
| 202 | | } |
| 203 | | } |
| | 214 | |
| | 215 | err = i2c_smbus_access(file, I2C_SMBUS_WRITE, command, |
| | 216 | I2C_SMBUS_BLOCK_PROC_CALL, &data); |
| | 217 | if (err < 0) |
| | 218 | return err; |
| | 219 | |
| | 220 | for (i = 1; i <= data.block[0]; i++) |
| | 221 | values[i-1] = data.block[i]; |
| | 222 | return data.block[0]; |
| | 223 | } |