Beispiel #1
0
MXL_STATUS MxLWare603_API_ReqDevVersionInfo(UINT8 devId, 
                                            MXL603_VER_INFO_T* mxlDevVerInfoPtr)
{
  UINT8 status = MXL_SUCCESS;
  UINT8 readBack = 0;
  UINT8 k = 0;

  MxL_DLL_DEBUG0("%s", "MxLWare603_API_ReqDevVersionInfo"); 

  if (mxlDevVerInfoPtr)
  {
    status |= MxLWare603_OEM_ReadRegister(devId, CHIP_ID_REQ_REG, &readBack);
    mxlDevVerInfoPtr->chipId = (readBack & 0xFF); 

    status |= MxLWare603_OEM_ReadRegister(devId, CHIP_VERSION_REQ_REG, &readBack);
    mxlDevVerInfoPtr->chipVersion = (readBack & 0xFF); 

    MxL_DLL_DEBUG0("Chip ID = 0x%d, Version = 0x%d \n", mxlDevVerInfoPtr->chipId, 
                                                        mxlDevVerInfoPtr->chipVersion);
    
    // Get MxLWare version infromation
    for (k = 0; k < MXL603_VERSION_SIZE; k++)
      mxlDevVerInfoPtr->mxlwareVer[k] = MxLWare603DrvVersion[k];
  }
  else 
    status = MXL_INVALID_PARAMETER;

  return (MXL_STATUS)status;
}
Beispiel #2
0
MXL_STATUS MxLWare603_API_CfgDevGPO(UINT8 devId, MXL603_GPO_STATE_E gpoState)
{
  UINT8 status = MXL_SUCCESS;
  UINT8 regData = 0;

  MxL_DLL_DEBUG0("%s", "MxLWare603_API_CfgDevGPO"); 

  switch(gpoState)
  {
    case MXL603_GPO_AUTO_CTRL:
    case MXL603_GPO_HIGH:
    case MXL603_GPO_LOW:
      status = MxLWare603_OEM_ReadRegister(devId, GPO_SETTING_REG, &regData);
      if (MXL603_GPO_AUTO_CTRL == gpoState)
        regData &= 0xFE;
      else
      {
        regData &= 0xFC;
        regData |= (UINT8)(0x01 | (gpoState << 1)); 
      }
     
      status |= MxLWare603_OEM_WriteRegister(devId, GPO_SETTING_REG, regData);
      break;

    default:
      status = MXL_INVALID_PARAMETER;
  }

  return (MXL_STATUS)status;
}
Beispiel #3
0
MXL_STATUS MxLWare603_API_CfgDevOverwriteDefaults(UINT32 devId,
                                                  MXL_BOOL singleSupply_3_3V)
{
  UINT8 status = MXL_SUCCESS;
  UINT8 readData = 0;

  MxL_DLL_DEBUG0("%s", __FUNCTION__);

  status |= MxL603_Ctrl_ProgramRegisters(devId, MxL603_OverwriteDefaults);

  status |= MxLWare603_OEM_WriteRegister(devId, 0x00, 0x01);
  status |= MxLWare603_OEM_ReadRegister(devId, 0x31, &readData);
  readData &= 0x2F;
  readData |= 0xD0;
  status |= MxLWare603_OEM_WriteRegister(devId, 0x31, readData);
  status |= MxLWare603_OEM_WriteRegister(devId, 0x00, 0x00);


  /* If Single supply 3.3v is used */
  if (MXL_ENABLE == singleSupply_3_3V)
    status |= MxLWare603_OEM_WriteRegister(devId, MAIN_REG_AMP, 0x04);

  m_singleSupply_3_3V = singleSupply_3_3V;

  return (MXL_STATUS)status;
}
Beispiel #4
0
MXL_STATUS MxL603_Ctrl_ProgramRegisters(UINT8 devId, PMXL603_REG_CTRL_INFO_T ctrlRegInfoPtr)
{
  MXL_STATUS status = MXL_TRUE;
  UINT16 i = 0;
  UINT8 tmp = 0;
  
  while (status == MXL_TRUE)
  {
    if ((ctrlRegInfoPtr[i].regAddr == 0) && (ctrlRegInfoPtr[i].mask == 0) && (ctrlRegInfoPtr[i].data == 0)) break;

    // Check if partial bits of register were updated
    if (ctrlRegInfoPtr[i].mask != 0xFF)  
    {
      status = MxLWare603_OEM_ReadRegister(devId,ctrlRegInfoPtr[i].regAddr, &tmp);
      if (status != MXL_TRUE) break;;
    }
    
    tmp &= (UINT8) ~ctrlRegInfoPtr[i].mask;
    tmp |= (UINT8) ctrlRegInfoPtr[i].data;

    status = MxLWare603_OEM_WriteRegister(devId,ctrlRegInfoPtr[i].regAddr, tmp);
    if (status != MXL_TRUE) break;

    i++;
  }

  return status;
}
Beispiel #5
0
MXL_STATUS MxLWare603_API_ReqDevGPOStatus(UINT8 devId, 
                                          MXL603_GPO_STATE_E* gpoStatusPtr)
{
  UINT8 status = MXL_SUCCESS;
  UINT8 regData = 0;

  MxL_DLL_DEBUG0("%s", "MxLWare603_API_ReqDevGPOStatus"); 

  if (gpoStatusPtr)
  {
    status = MxLWare603_OEM_ReadRegister(devId, GPO_SETTING_REG, &regData);

    // GPO1 bit<1:0>
    if ((regData & 0x01) == 0) *gpoStatusPtr = MXL603_GPO_AUTO_CTRL;
    else *gpoStatusPtr = (MXL603_GPO_STATE_E)((regData & 0x02) >> 1);
  }
  else
Beispiel #6
0
MXL_STATUS MxL603_Ctrl_WriteRegField(UINT8 devId, PMXL603_REG_CTRL_INFO_T ctrlRegInfoPtr)
{
  MXL_STATUS status = MXL_TRUE;
  UINT8 tmp = 0;
  
  if ((ctrlRegInfoPtr->regAddr == 0) && (ctrlRegInfoPtr->mask == 0) && (ctrlRegInfoPtr->data == 0))
    return MXL_FALSE;

  // Check if partial bits of register were updated
  if (ctrlRegInfoPtr->mask != 0xFF)  
  {
      status = MxLWare603_OEM_ReadRegister(devId, ctrlRegInfoPtr->regAddr, &tmp);
      if (status != MXL_TRUE) return status;
   }

  tmp &= (UINT8)~ctrlRegInfoPtr->mask;  // Clear the field that need to set value 
  tmp |= (UINT8)(ctrlRegInfoPtr->data & ctrlRegInfoPtr->mask); 

  status = MxLWare603_OEM_WriteRegister(devId, ctrlRegInfoPtr->regAddr, tmp);

  return status;
}