1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* ------------------------------------------------------------------------- */ 3*4882a593Smuzhiyun /* adap-pcf.h i2c driver algorithms for PCF8584 adapters */ 4*4882a593Smuzhiyun /* ------------------------------------------------------------------------- */ 5*4882a593Smuzhiyun /* Copyright (C) 1995-97 Simon G. Vogl 6*4882a593Smuzhiyun 1998-99 Hans Berglund 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun /* ------------------------------------------------------------------------- */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even 12*4882a593Smuzhiyun Frodo Looijaard <frodol@dds.nl> */ 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #ifndef _LINUX_I2C_ALGO_PCF_H 15*4882a593Smuzhiyun #define _LINUX_I2C_ALGO_PCF_H 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun struct i2c_algo_pcf_data { 18*4882a593Smuzhiyun void *data; /* private data for lolevel routines */ 19*4882a593Smuzhiyun void (*setpcf) (void *data, int ctl, int val); 20*4882a593Smuzhiyun int (*getpcf) (void *data, int ctl); 21*4882a593Smuzhiyun int (*getown) (void *data); 22*4882a593Smuzhiyun int (*getclock) (void *data); 23*4882a593Smuzhiyun void (*waitforpin) (void *data); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun void (*xfer_begin) (void *data); 26*4882a593Smuzhiyun void (*xfer_end) (void *data); 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* Multi-master lost arbitration back-off delay (msecs) 29*4882a593Smuzhiyun * This should be set by the bus adapter or knowledgable client 30*4882a593Smuzhiyun * if bus is multi-mastered, else zero 31*4882a593Smuzhiyun */ 32*4882a593Smuzhiyun unsigned long lab_mdelay; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun int i2c_pcf_add_bus(struct i2c_adapter *); 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #endif /* _LINUX_I2C_ALGO_PCF_H */ 38