Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* $Id: etraxi2c.h,v 1.1 2001/01/18 15:49:57 bjornw Exp $ */ |
2 | ||
3 | #ifndef _LINUX_ETRAXI2C_H | |
4 | #define _LINUX_ETRAXI2C_H | |
5 | ||
6 | /* etraxi2c _IOC_TYPE, bits 8 to 15 in ioctl cmd */ | |
7 | ||
8 | #define ETRAXI2C_IOCTYPE 44 | |
9 | ||
10 | /* supported ioctl _IOC_NR's */ | |
11 | ||
12 | /* in write operations, the argument contains both i2c | |
13 | * slave, register and value. | |
14 | */ | |
15 | ||
16 | #define I2C_WRITEARG(slave, reg, value) (((slave) << 16) | ((reg) << 8) | (value)) | |
17 | #define I2C_READARG(slave, reg) (((slave) << 16) | ((reg) << 8)) | |
18 | ||
19 | #define I2C_ARGSLAVE(arg) ((arg) >> 16) | |
20 | #define I2C_ARGREG(arg) (((arg) >> 8) & 0xff) | |
21 | #define I2C_ARGVALUE(arg) ((arg) & 0xff) | |
22 | ||
23 | #define I2C_WRITEREG 0x1 /* write to an i2c register */ | |
24 | #define I2C_READREG 0x2 /* read from an i2c register */ | |
25 | ||
26 | /* | |
27 | EXAMPLE usage: | |
28 | ||
29 | i2c_arg = I2C_WRITEARG(STA013_WRITE_ADDR, reg, val); | |
30 | ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_WRITEREG), i2c_arg); | |
31 | ||
32 | i2c_arg = I2C_READARG(STA013_READ_ADDR, reg); | |
33 | val = ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_READREG), i2c_arg); | |
34 | ||
35 | */ | |
36 | #endif |