diff options
Diffstat (limited to 'include/linux/i2c-algo-ite.h')
-rw-r--r-- | include/linux/i2c-algo-ite.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/include/linux/i2c-algo-ite.h b/include/linux/i2c-algo-ite.h new file mode 100644 index 000000000000..26a8b89855f1 --- /dev/null +++ b/include/linux/i2c-algo-ite.h | |||
@@ -0,0 +1,69 @@ | |||
1 | /* ------------------------------------------------------------------------- */ | ||
2 | /* i2c-algo-ite.h i2c driver algorithms for ITE IIC adapters */ | ||
3 | /* ------------------------------------------------------------------------- */ | ||
4 | /* Copyright (C) 1995-97 Simon G. Vogl | ||
5 | 1998-99 Hans Berglund | ||
6 | |||
7 | This program is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program; if not, write to the Free Software | ||
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
20 | /* ------------------------------------------------------------------------- */ | ||
21 | |||
22 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even | ||
23 | Frodo Looijaard <frodol@dds.nl> */ | ||
24 | |||
25 | /* Modifications by MontaVista Software, 2001 | ||
26 | Changes made to support the ITE IIC peripheral */ | ||
27 | |||
28 | |||
29 | #ifndef I2C_ALGO_ITE_H | ||
30 | #define I2C_ALGO_ITE_H 1 | ||
31 | |||
32 | #include <linux/i2c.h> | ||
33 | |||
34 | /* Example of a sequential read request: | ||
35 | struct i2c_iic_msg s_msg; | ||
36 | |||
37 | s_msg.addr=device_address; | ||
38 | s_msg.len=length; | ||
39 | s_msg.buf=buffer; | ||
40 | s_msg.waddr=word_address; | ||
41 | ioctl(file,I2C_SREAD, &s_msg); | ||
42 | */ | ||
43 | #define I2C_SREAD 0x780 /* SREAD ioctl command */ | ||
44 | |||
45 | struct i2c_iic_msg { | ||
46 | __u16 addr; /* device address */ | ||
47 | __u16 waddr; /* word address */ | ||
48 | short len; /* msg length */ | ||
49 | char *buf; /* pointer to msg data */ | ||
50 | }; | ||
51 | |||
52 | struct i2c_algo_iic_data { | ||
53 | void *data; /* private data for lolevel routines */ | ||
54 | void (*setiic) (void *data, int ctl, int val); | ||
55 | int (*getiic) (void *data, int ctl); | ||
56 | int (*getown) (void *data); | ||
57 | int (*getclock) (void *data); | ||
58 | void (*waitforpin) (void); | ||
59 | |||
60 | /* local settings */ | ||
61 | int udelay; | ||
62 | int mdelay; | ||
63 | int timeout; | ||
64 | }; | ||
65 | |||
66 | int i2c_iic_add_bus(struct i2c_adapter *); | ||
67 | int i2c_iic_del_bus(struct i2c_adapter *); | ||
68 | |||
69 | #endif /* I2C_ALGO_ITE_H */ | ||