Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 54912
b: refs/heads/master
c: f782915
h: refs/heads/master
v: v3
  • Loading branch information
Antonino A. Daplas authored and Linus Torvalds committed May 8, 2007
1 parent 938cea0 commit a9b2a8d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7dfe50b3aac2b3500139ab10a6e228d34fed9a49
refs/heads/master: f7829158bce2c8180bf7a1cb922cad812d3a2788
22 changes: 8 additions & 14 deletions trunk/drivers/video/savage/savagefb-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@
#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;
Expand Down Expand Up @@ -92,47 +88,45 @@ static void prosavage_gpio_setscl(void* data, int val)
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)
{
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,
Expand Down

0 comments on commit a9b2a8d

Please sign in to comment.