2008-10-15 22:03:29 -07:00
/*
2009-05-23 00:35:39 +08:00
* Copyright 1998 - 2009 VIA Technologies , Inc . All Rights Reserved .
2008-10-15 22:03:29 -07:00
* Copyright 2001 - 2008 S3 Graphics , Inc . All Rights Reserved .
* 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 , or ( at your option ) any later version .
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTIES OR REPRESENTATIONS ; 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
* Foundation , Inc . ,
* 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
# ifndef __VIA_I2C_H__
# define __VIA_I2C_H__
# include <linux/i2c.h>
# include <linux/i2c-algo-bit.h>
2009-05-23 00:35:39 +08:00
enum via_i2c_type {
VIA_I2C_NONE ,
VIA_I2C_I2C ,
VIA_I2C_GPIO ,
} ;
/* private data for each adapter */
struct via_i2c_adap_cfg {
enum via_i2c_type type ;
u_int16_t io_port ;
u_int8_t ioport_index ;
} ;
2008-10-15 22:03:29 -07:00
struct via_i2c_stuff {
u16 i2c_port ; /* GPIO or I2C port */
struct i2c_adapter adapter ;
struct i2c_algo_bit_data algo ;
} ;
2009-05-23 00:35:39 +08:00
enum viafb_i2c_adap {
VIA_I2C_ADAP_26 ,
VIA_I2C_ADAP_31 ,
VIA_I2C_ADAP_25 ,
VIA_I2C_ADAP_2C ,
VIA_I2C_ADAP_3D ,
} ;
int viafb_i2c_readbyte ( u8 adap , u8 slave_addr , u8 index , u8 * pdata ) ;
int viafb_i2c_writebyte ( u8 adap , u8 slave_addr , u8 index , u8 data ) ;
int viafb_i2c_readbytes ( u8 adap , u8 slave_addr , u8 index , u8 * buff , int buff_len ) ;
struct viafb_par ;
int viafb_create_i2c_busses ( struct viafb_par * par ) ;
void viafb_delete_i2c_busses ( struct viafb_par * par ) ;
2008-10-15 22:03:29 -07:00
# endif /* __VIA_I2C_H__ */