Files
linux-apfs/include/linux/i2c-algo-bit.h
T

56 lines
2.2 KiB
C
Raw Normal View History

2005-04-16 15:20:36 -07:00
/* ------------------------------------------------------------------------- */
/* i2c-algo-bit.h i2c driver algorithms for bit-shift adapters */
/* ------------------------------------------------------------------------- */
/* Copyright (C) 1995-99 Simon G. Vogl
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
2012-03-26 21:47:19 +02:00
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA. */
2005-04-16 15:20:36 -07:00
/* ------------------------------------------------------------------------- */
/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
2005-04-16 15:20:36 -07:00
Frodo Looijaard <frodol@dds.nl> */
#ifndef _LINUX_I2C_ALGO_BIT_H
#define _LINUX_I2C_ALGO_BIT_H
/* --- Defines for bit-adapters --------------------------------------- */
/*
2006-12-10 21:21:31 +01:00
* This struct contains the hw-dependent functions of bit-style adapters to
2005-04-16 15:20:36 -07:00
* manipulate the line states, and to init any hw-specific features. This is
2006-12-10 21:21:31 +01:00
* only used if you have more than one hw-type of adapter running.
2005-04-16 15:20:36 -07:00
*/
struct i2c_algo_bit_data {
void *data; /* private data for lowlevel routines */
void (*setsda) (void *data, int state);
void (*setscl) (void *data, int state);
int (*getsda) (void *data);
int (*getscl) (void *data);
2010-03-13 20:56:56 +01:00
int (*pre_xfer) (struct i2c_adapter *);
void (*post_xfer) (struct i2c_adapter *);
2005-04-16 15:20:36 -07:00
/* local settings */
int udelay; /* half clock cycle time in us,
minimum 2 us for fast-mode I2C,
minimum 5 us for standard-mode I2C and SMBus,
maximum 50 us for SMBus */
2005-04-16 15:20:36 -07:00
int timeout; /* in jiffies */
};
int i2c_bit_add_bus(struct i2c_adapter *);
2007-05-01 23:26:31 +02:00
int i2c_bit_add_numbered_bus(struct i2c_adapter *);
2012-02-28 00:39:39 +01:00
extern const struct i2c_algorithm i2c_bit_algo;
2005-04-16 15:20:36 -07:00
#endif /* _LINUX_I2C_ALGO_BIT_H */