The example code provided with the i2c device interface documentation won't compile since it uses the reserved word "register" to name a variable. The compiler fails with this error message: error: expected identifier or '(' before '=' token __u8 register = 0x20; /* Device register to access */ ^ Rename the variable "register" to simply "reg" in the example code. Another couple of typos has been fixed as well. [Change "! =" to "!=".]
Unified · Split
| @@ -57,12 +57,12 @@ Well, you are all set up now. You can now use SMBus commands or plain · 56 unmodified lines | |||
| 57 | I2C to communicate with your device. SMBus commands are preferred if | 57 | I2C to communicate with your device. SMBus commands are preferred if |
| 58 | the device supports them. Both are illustrated below. | 58 | the device supports them. Both are illustrated below. |
| 59 | 59 | ||
| 60 | __u8 register = 0x10; /* Device register to access */ | 60 | __u8 reg = 0x10; /* Device register to access */ |
| 61 | __s32 res; | 61 | __s32 res; |
| 62 | char buf[10]; | 62 | char buf[10]; |
| 63 | 63 | ||
| 64 | /* Using SMBus commands */ | 64 | /* Using SMBus commands */ |
| 65 | res = i2c_smbus_read_word_data(file, register); | 65 | res = i2c_smbus_read_word_data(file, reg); |
| 66 | if (res < 0) { | 66 | if (res < 0) { |
| 67 | /* ERROR HANDLING: i2c transaction failed */ | 67 | /* ERROR HANDLING: i2c transaction failed */ |
| 68 | } else { | 68 | } else { |
| @@ -70,11 +70,11 @@ the device supports them. Both are illustrated below. · 1 unmodified line | |||
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | /* Using I2C Write, equivalent of | 72 | /* Using I2C Write, equivalent of |
| 73 | i2c_smbus_write_word_data(file, register, 0x6543) */ | 73 | i2c_smbus_write_word_data(file, reg, 0x6543) */ |
| 74 | buf[0] = register; | 74 | buf[0] = reg; |
| 75 | buf[1] = 0x43; | 75 | buf[1] = 0x43; |
| 76 | buf[2] = 0x65; | 76 | buf[2] = 0x65; |
| 77 | if (write(file, buf, 3) ! =3) { | 77 | if (write(file, buf, 3) != 3) { |
| 78 | /* ERROR HANDLING: i2c transaction failed */ | 78 | /* ERROR HANDLING: i2c transaction failed */ |
| 79 | } | 79 | } |
| 80 | 80 | ||