#ifndef I2C_ALGO_SCCB_H
#define I2C_ALGO_SCCB_H 1

struct i2c_algo_sccb_data {
	void *data;			/* Private data for lowlevel routines */
	struct semaphore bus_lock;	/* Serializes bus operations */

	int (*read2) (void *data, unsigned char *val);
	int (*write2) (void *data, unsigned char subaddr);
	int (*write3) (void *data, unsigned char subaddr, unsigned char val);
	int (*validate_addr) (void *data, unsigned char addr);
	int (*set_addr) (void *data, unsigned char addr);

	/* local settings */
	unsigned char  primary_addr;
};

#define I2C_SCCB_ADAP_MAX	16

int i2c_sccb_add_bus(struct i2c_adapter *);
int i2c_sccb_del_bus(struct i2c_adapter *);

#endif
