savagefb: Rework i2c bit access
PATCH 3/41 savagefb: Rework i2c bit access
Use already defined VGAwCR/VGArCR functions to access the i2c bus.
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/savage/savagefb-i2c.c | 22 ++++++++-------------- 1 files changed, 8 insertions(+), 14 deletions(-)
drivers/video/savage/savagefb-i2c.c +8 -14
@@ -41,10 +41,6 @@ #define SAVAGE4_I2C_SDA_OUT 0x00000002#define SAVAGE4_I2C_SCL_IN 0x00000008#define SAVAGE4_I2C_SDA_IN 0x00000010 -#define SET_CR_IX (base, val) writeb((val), base + 0x8000 + VGA_CR_IX) -#define SET_CR_DATA (base, val) writeb((val), base + 0x8000 + VGA_CR_DATA) -#define GET_CR_DATA (base) readb(base + 0x8000 + VGA_CR_DATA) -static void savage4_gpio_setscl (void *data,int val) {struct savagefb_i2c_chan *chan = data;
@@ -92,15 +88,15 @@ static void prosavage_gpio_setscl(void*struct savagefb_i2c_chan *chan = data;u32 r; -SET_CR_IX (chan->ioaddr, chan->reg); - r =GET_CR_DATA (chan->ioaddr); + r =VGArCR (chan->reg, chan->par); r |=PROSAVAGE_I2C_ENAB ;if (val) { r |=PROSAVAGE_I2C_SCL_OUT ; }else { r &= ~PROSAVAGE_I2C_SCL_OUT ; } -SET_CR_DATA (chan->ioaddr, r); + +VGAwCR (chan->reg, r, chan->par); }static void prosavage_gpio_setsda (void * data,int val)
@@ -108,31 +104,29 @@ static void prosavage_gpio_setsda(void*struct savagefb_i2c_chan *chan = data;unsigned int r; -SET_CR_IX (chan->ioaddr, chan->reg); - r =GET_CR_DATA (chan->ioaddr); + r =VGArCR (chan->reg, chan->par); r |=PROSAVAGE_I2C_ENAB ;if (val) { r |=PROSAVAGE_I2C_SDA_OUT ; }else { r &= ~PROSAVAGE_I2C_SDA_OUT ; } -SET_CR_DATA (chan->ioaddr, r); + +VGAwCR (chan->reg, r, chan->par); }static int prosavage_gpio_getscl (void * data) {struct savagefb_i2c_chan *chan = data; -SET_CR_IX (chan->ioaddr, chan->reg); -return (0 != (GET_CR_DATA (chan->ioaddr) &PROSAVAGE_I2C_SCL_IN )); +return (VGArCR (chan->reg, chan->par) &PROSAVAGE_I2C_SCL_IN ) ?1 :0 ; }static int prosavage_gpio_getsda (void * data) {struct savagefb_i2c_chan *chan = data; -SET_CR_IX (chan->ioaddr, chan->reg); -return (0 != (GET_CR_DATA (chan->ioaddr) &PROSAVAGE_I2C_SDA_IN )); +return (VGArCR (chan->reg, chan->par) &PROSAVAGE_I2C_SDA_IN ) ?1 :0 ; } static int savage_setup_i2c_bus(struct savagefb_i2c_chan *chan,
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/