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 | 57 | I2C to communicate with your device. SMBus commands are preferred if |
| 58 | 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 | 61 | __s32 res; |
| 62 | 62 | char buf[10]; |
| 63 | 63 | |
| 64 | 64 | /* Using SMBus commands */ |
| 65 | − res = i2c_smbus_read_word_data(file, register); | |
| 65 | + res = i2c_smbus_read_word_data(file, reg); | |
| 66 | 66 | if (res < 0) { |
| 67 | 67 | /* ERROR HANDLING: i2c transaction failed */ |
| 68 | 68 | } else { |
| @@ -70,11 +70,11 @@ the device supports them. Both are illustrated below. · 1 unmodified line | ||
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | /* Using I2C Write, equivalent of |
| 73 | − i2c_smbus_write_word_data(file, register, 0x6543) */ | |
| 74 | − buf[0] = register; | |
| 73 | + i2c_smbus_write_word_data(file, reg, 0x6543) */ | |
| 74 | + buf[0] = reg; | |
| 75 | 75 | buf[1] = 0x43; |
| 76 | 76 | buf[2] = 0x65; |
| 77 | − if (write(file, buf, 3) ! =3) { | |
| 77 | + if (write(file, buf, 3) != 3) { | |
| 78 | 78 | /* ERROR HANDLING: i2c transaction failed */ |
| 79 | 79 | } |
| 80 | 80 | |