| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* ------------------------------------------------------------------------- */ | 
 | 2 | /* adap-pcf.h i2c driver algorithms for PCF8584 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 |  | 
| John Anthony Kazos Jr | 121e70b | 2007-05-09 08:30:57 +0200 | [diff] [blame] | 22 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 |    Frodo Looijaard <frodol@dds.nl> */ | 
 | 24 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | #ifndef _LINUX_I2C_ALGO_PCF_H | 
 | 26 | #define _LINUX_I2C_ALGO_PCF_H | 
 | 27 |  | 
 | 28 | struct i2c_algo_pcf_data { | 
 | 29 | 	void *data;		/* private data for lolevel routines	*/ | 
 | 30 | 	void (*setpcf) (void *data, int ctl, int val); | 
 | 31 | 	int  (*getpcf) (void *data, int ctl); | 
 | 32 | 	int  (*getown) (void *data); | 
 | 33 | 	int  (*getclock) (void *data); | 
| David Miller | 08e5338 | 2008-10-22 20:21:29 +0200 | [diff] [blame] | 34 | 	void (*waitforpin) (void *data); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 |  | 
| David Miller | 3009140 | 2008-10-22 20:21:30 +0200 | [diff] [blame] | 36 | 	void (*xfer_begin) (void *data); | 
 | 37 | 	void (*xfer_end) (void *data); | 
 | 38 |  | 
| Eric Brower | 0573d11 | 2008-07-14 22:38:31 +0200 | [diff] [blame] | 39 | 	/* Multi-master lost arbitration back-off delay (msecs) | 
 | 40 | 	 * This should be set by the bus adapter or knowledgable client | 
 | 41 | 	 * if bus is multi-mastered, else zero | 
 | 42 | 	 */ | 
 | 43 | 	unsigned long lab_mdelay; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 44 | }; | 
 | 45 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 46 | int i2c_pcf_add_bus(struct i2c_adapter *); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 47 |  | 
 | 48 | #endif /* _LINUX_I2C_ALGO_PCF_H */ |