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;
}
Пример #2
0
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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}
Пример #6
0
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;
}
Пример #8
0
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;
}
Пример #9
0
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;
}