Bool AlpI2CInit(ScrnInfoPtr pScrn) { CirPtr pCir = CIRPTR(pScrn); I2CBusPtr I2CPtr; #ifdef ALP_DEBUG ErrorF("AlpI2CInit\n"); #endif switch(pCir->Chipset) { case PCI_CHIP_GD5446: case PCI_CHIP_GD5480: break; default: return FALSE; } I2CPtr = xf86CreateI2CBusRec(); if (!I2CPtr) return FALSE; pCir->I2CPtr1 = I2CPtr; I2CPtr->BusName = "I2C bus 1"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = AlpI2CPutBits; I2CPtr->I2CGetBits = AlpI2CGetBits; I2CPtr->DriverPrivate.ptr = pCir; if (!xf86I2CBusInit(I2CPtr)) return FALSE; I2CPtr = xf86CreateI2CBusRec(); if (!I2CPtr) return FALSE; pCir->I2CPtr2 = I2CPtr; I2CPtr->BusName = "I2C bus 2"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = AlpI2CPutBits; I2CPtr->I2CGetBits = AlpI2CGetBits; I2CPtr->DriverPrivate.ptr = pCir; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
Bool I740_I2CInit(ScrnInfoPtr pScrn) { I740Ptr pI740=I740PTR(pScrn); I2CBusPtr I2CPtr; { unsigned char val; val=pI740->readControl(pI740, XRX, 0x63); val&=0xFC; pI740->writeControl(pI740, XRX, 0x63, val); } { unsigned char val; val=pI740->readControl(pI740, XRX, 0x1C); val|=0x90; pI740->writeControl(pI740, XRX, 0x1C, val); } { unsigned char val; val=pI740->readControl(pI740, XRX, 0x63); val&=0xFC; pI740->writeControl(pI740, XRX, 0x63, val); } I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return FALSE; pI740->rc_i2c = I2CPtr; I2CPtr->BusName = "I2C bus"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = i740_I2CPutBits; I2CPtr->I2CGetBits = i740_I2CGetBits; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
Bool SMI_I2CInit(ScrnInfoPtr pScrn) { SMIPtr pSmi = SMIPTR(pScrn); if (pSmi->I2C == NULL) { I2CBusPtr I2CPtr = xf86CreateI2CBusRec(); if (I2CPtr == NULL) return FALSE; I2CPtr->BusName = "I2C bus"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = SMI_I2CPutBits; I2CPtr->I2CGetBits = SMI_I2CGetBits; if (!xf86I2CBusInit(I2CPtr)) { xf86DestroyI2CBusRec(I2CPtr, TRUE, TRUE); return FALSE; } pSmi->I2C = I2CPtr; } return TRUE; }
Bool neo_I2CInit(ScrnInfoPtr pScrn) { NEOPtr pNeo = NEOPTR(pScrn); I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return FALSE; pNeo->I2C = I2CPtr; I2CPtr->BusName = "I2C bus"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = neo_I2CPutBits; I2CPtr->I2CGetBits = neo_I2CGetBits; /* increase these as the defaults are too low */ I2CPtr->RiseFallTime = 2; I2CPtr->HoldTime = 40; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
I2CBusPtr nvclock_i2c_create_bus_ptr(nouveau_device *device, char *name, int bus) { I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return NULL; I2CPtr->BusName = name; I2CPtr->scrnIndex = device->card_index; /* We need to use unique indices or else it can lead to a segfault in multicard situations */ I2CPtr->I2CAddress = I2CAddress; if (device->card_type < NV_50) { I2CPtr->I2CPutBits = nvclock_i2c_put_bits; I2CPtr->I2CGetBits = nvclock_i2c_get_bits; I2CPtr->AcknTimeout = 5; } else { I2CPtr->I2CPutBits = nvclock_nv50_i2c_put_bits; I2CPtr->I2CGetBits = nvclock_nv50_i2c_get_bits; I2CPtr->AcknTimeout = 40; } I2CPtr->DriverPrivate.val = bus; I2CPtr->card = device; if (!xf86I2CBusInit(I2CPtr)) return 0; return I2CPtr; }
Bool chips_i2cInit(ScrnInfoPtr pScrn) { CHIPSPtr cPtr = CHIPSPTR(pScrn); I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return FALSE; cPtr->I2C = I2CPtr; I2CPtr->BusName = "DDC"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = chips_I2CPutBits; I2CPtr->I2CGetBits = chips_I2CGetBits; I2CPtr->DriverPrivate.ptr = xalloc(sizeof(CHIPSI2CRec)); ((CHIPSI2CPtr)(I2CPtr->DriverPrivate.ptr))->cPtr = cPtr; if (!xf86I2CBusInit(I2CPtr)) return FALSE; if (!chips_setI2CBits(I2CPtr, pScrn)) return FALSE; return TRUE; }
Bool LgI2CInit(ScrnInfoPtr pScrn) { CirPtr pCir = CIRPTR(pScrn); I2CBusPtr I2CPtr; #ifdef LG_DEBUG ErrorF("LgI2CInit\n"); #endif I2CPtr = xf86CreateI2CBusRec(); if (!I2CPtr) return FALSE; pCir->I2CPtr1 = I2CPtr; I2CPtr->BusName = "I2C bus 1"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = LgI2CPutBits; I2CPtr->I2CGetBits = LgI2CGetBits; I2CPtr->DriverPrivate.ptr = pCir; if (!xf86I2CBusInit(I2CPtr)) return FALSE; I2CPtr = xf86CreateI2CBusRec(); if (!I2CPtr) return FALSE; pCir->I2CPtr2 = I2CPtr; I2CPtr->BusName = "I2C bus 2"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = LgI2CPutBits; I2CPtr->I2CGetBits = LgI2CGetBits; I2CPtr->DriverPrivate.ptr = pCir; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
Bool S3V_I2CInit(ScrnInfoPtr pScrn) { S3VPtr ps3v = S3VPTR(pScrn); I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return FALSE; ps3v->I2C = I2CPtr; I2CPtr->BusName = "I2C bus"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = s3v_I2CPutBits; I2CPtr->I2CGetBits = s3v_I2CGetBits; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
Bool FFBi2cInit(ScrnInfoPtr pScrn) { FFBPtr pFfb = GET_FFB_FROM_SCRN(pScrn); I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if (!I2CPtr) return FALSE; pFfb->I2C = I2CPtr; I2CPtr->BusName = "DDC"; I2CPtr->scrnIndex = pScrn->scrnIndex; I2CPtr->I2CPutBits = FFBI2CPutBits; I2CPtr->I2CGetBits = FFBI2CGetBits; I2CPtr->AcknTimeout = 5; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }
Bool SavageI2CInit(ScrnInfoPtr pScrn) { SavagePtr psav = SAVPTR(pScrn); I2CBusPtr I2CPtr; I2CPtr = xf86CreateI2CBusRec(); if(!I2CPtr) return FALSE; psav->I2C = I2CPtr; I2CPtr->BusName = "I2C bus"; I2CPtr->scrnIndex = pScrn->scrnIndex; #ifdef XF86_SCRN_INTERFACE I2CPtr->pScrn = pScrn; #endif I2CPtr->I2CPutBits = SavageI2CPutBits; I2CPtr->I2CGetBits = SavageI2CGetBits; if (!xf86I2CBusInit(I2CPtr)) return FALSE; return TRUE; }