static void neo_I2CPutBits(I2CBusPtr b, int clock, int data) { vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); unsigned int reg = 0xF0; VGAwCR(0x21,0x00); VGAwCR(0x1D,0x01); if(clock) reg |= 1; if(data) reg |= 0x4; VGAwGR(0xA1,reg); /*ErrorF("neo_I2CPutBits: %d %d\n", clock, data); */ }
static void prosavage_gpio_setscl(void* data, int val) { struct savagefb_i2c_chan *chan = data; u32 r; r = VGArCR(chan->reg, chan->par); r |= PROSAVAGE_I2C_ENAB; if (val) { r |= PROSAVAGE_I2C_SCL_OUT; } else { r &= ~PROSAVAGE_I2C_SCL_OUT; } VGAwCR(chan->reg, r, chan->par); }