Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 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 */ |