Subversion Repositories Kolibri OS

Rev

Rev 1408 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1408 Rev 1964
1
/* ------------------------------------------------------------------------- */
1
/* ------------------------------------------------------------------------- */
2
/* i2c-algo-bit.h i2c driver algorithms for bit-shift adapters               */
2
/* i2c-algo-bit.h i2c driver algorithms for bit-shift adapters               */
3
/* ------------------------------------------------------------------------- */
3
/* ------------------------------------------------------------------------- */
4
/*   Copyright (C) 1995-99 Simon G. Vogl
4
/*   Copyright (C) 1995-99 Simon G. Vogl
5
 
5
 
6
    This program is free software; you can redistribute it and/or modify
6
    This program is free software; you can redistribute it and/or modify
7
    it under the terms of the GNU General Public License as published by
7
    it under the terms of the GNU General Public License as published by
8
    the Free Software Foundation; either version 2 of the License, or
8
    the Free Software Foundation; either version 2 of the License, or
9
    (at your option) any later version.
9
    (at your option) any later version.
10
 
10
 
11
    This program is distributed in the hope that it will be useful,
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
14
    GNU General Public License for more details.
15
 
15
 
16
    You should have received a copy of the GNU General Public License
16
    You should have received a copy of the GNU General Public License
17
    along with this program; if not, write to the Free Software
17
    along with this program; if not, write to the Free Software
18
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
18
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
19
/* ------------------------------------------------------------------------- */
19
/* ------------------------------------------------------------------------- */
20
 
20
 
21
/* With some changes from Kyösti Mälkki  and even
21
/* With some changes from Kyösti Mälkki  and even
22
   Frodo Looijaard  */
22
   Frodo Looijaard  */
23
 
23
 
24
#ifndef _LINUX_I2C_ALGO_BIT_H
24
#ifndef _LINUX_I2C_ALGO_BIT_H
25
#define _LINUX_I2C_ALGO_BIT_H
25
#define _LINUX_I2C_ALGO_BIT_H
26
 
26
 
27
/* --- Defines for bit-adapters ---------------------------------------	*/
27
/* --- Defines for bit-adapters ---------------------------------------	*/
28
/*
28
/*
29
 * This struct contains the hw-dependent functions of bit-style adapters to
29
 * This struct contains the hw-dependent functions of bit-style adapters to
30
 * manipulate the line states, and to init any hw-specific features. This is
30
 * manipulate the line states, and to init any hw-specific features. This is
31
 * only used if you have more than one hw-type of adapter running.
31
 * only used if you have more than one hw-type of adapter running.
32
 */
32
 */
33
struct i2c_algo_bit_data {
33
struct i2c_algo_bit_data {
34
	void *data;		/* private data for lowlevel routines */
34
	void *data;		/* private data for lowlevel routines */
35
	void (*setsda) (void *data, int state);
35
	void (*setsda) (void *data, int state);
36
	void (*setscl) (void *data, int state);
36
	void (*setscl) (void *data, int state);
37
	int  (*getsda) (void *data);
37
	int  (*getsda) (void *data);
38
	int  (*getscl) (void *data);
38
	int  (*getscl) (void *data);
-
 
39
	int  (*pre_xfer)  (struct i2c_adapter *);
-
 
40
	void (*post_xfer) (struct i2c_adapter *);
39
 
41
 
40
	/* local settings */
42
	/* local settings */
41
	int udelay;		/* half clock cycle time in us,
43
	int udelay;		/* half clock cycle time in us,
42
				   minimum 2 us for fast-mode I2C,
44
				   minimum 2 us for fast-mode I2C,
43
				   minimum 5 us for standard-mode I2C and SMBus,
45
				   minimum 5 us for standard-mode I2C and SMBus,
44
				   maximum 50 us for SMBus */
46
				   maximum 50 us for SMBus */
45
	int timeout;		/* in jiffies */
47
	int timeout;		/* in jiffies */
46
};
48
};
47
 
49
 
48
int i2c_bit_add_bus(struct i2c_adapter *);
50
int i2c_bit_add_bus(struct i2c_adapter *);
49
int i2c_bit_add_numbered_bus(struct i2c_adapter *);
51
int i2c_bit_add_numbered_bus(struct i2c_adapter *);
50
 
52
 
51
#endif /* _LINUX_I2C_ALGO_BIT_H */
53
#endif /* _LINUX_I2C_ALGO_BIT_H */