⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdhw.c

📁 ZYDAS zd1211b driver for Linux2.4
💻 C
📖 第 1 页 / 共 5 页
字号:
                mFILL_WRITE_REGISTER( ZD_CR10, 0x89);                mFILL_WRITE_REGISTER( ZD_CR17, 0x28);                mFILL_WRITE_REGISTER( ZD_CR26, 0x93);                mFILL_WRITE_REGISTER( ZD_CR34, 0x30);                mFILL_WRITE_REGISTER( ZD_CR35, 0x3E);                mFILL_WRITE_REGISTER( ZD_CR41, 0x24);                mFILL_WRITE_REGISTER( ZD_CR44, 0x32);                mFILL_WRITE_REGISTER( ZD_CR46, 0x96);                mFILL_WRITE_REGISTER( ZD_CR47, 0x1e);                mFILL_WRITE_REGISTER( ZD_CR79, 0x58);                mFILL_WRITE_REGISTER( ZD_CR80, 0x30);                mFILL_WRITE_REGISTER( ZD_CR81, 0x30);                mFILL_WRITE_REGISTER( ZD_CR87, 0x0A);                mFILL_WRITE_REGISTER( ZD_CR89, 0x04);                mFILL_WRITE_REGISTER( ZD_CR92, 0x0a);                mFILL_WRITE_REGISTER( ZD_CR99, 0x28);                mFILL_WRITE_REGISTER( ZD_CR100, 0x02);                mFILL_WRITE_REGISTER( ZD_CR101, 0x13);                mFILL_WRITE_REGISTER( ZD_CR102, 0x27);                mFILL_WRITE_REGISTER( ZD_CR106, 0x22); //from 0x20 to 0x22 for AL7230B                mFILL_WRITE_REGISTER( ZD_CR107, 0x3f);                mFILL_WRITE_REGISTER( ZD_CR109, 0x09);                mFILL_WRITE_REGISTER( ZD_CR110, 0x1f);                mFILL_WRITE_REGISTER( ZD_CR111, 0x1f);                mFILL_WRITE_REGISTER( ZD_CR112, 0x1f);                mFILL_WRITE_REGISTER( ZD_CR113, 0x27);                mFILL_WRITE_REGISTER( ZD_CR114, 0x27);                mFILL_WRITE_REGISTER( ZD_CR115, 0x24);                mFILL_WRITE_REGISTER( ZD_CR116, 0x3f);                mFILL_WRITE_REGISTER( ZD_CR117, 0xfa);                mFILL_WRITE_REGISTER( ZD_CR118, 0xfc);                mFILL_WRITE_REGISTER( ZD_CR119, 0x10);                mFILL_WRITE_REGISTER( ZD_CR120, 0x4f);                mFILL_WRITE_REGISTER( ZD_CR121, 0x77);                mFILL_WRITE_REGISTER( ZD_CR137, 0x88);                mFILL_WRITE_REGISTER( ZD_CR138, 0xa8);                mFILL_WRITE_REGISTER( ZD_CR252, 0x34);                mFILL_WRITE_REGISTER( ZD_CR253, 0x34);                // mFILL_WRITE_REGISTER( ZD_CR240, 0x57);                if( MAC_Mode != PURE_A_MODE ) {                        mFILL_WRITE_REGISTER( ZD_CR251, 0x2f);  //PLL_OFF                        SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2]);                        SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2+1]);                        //SET_IF_SYNTHESIZER(macp, 0x8cccd0);                        SET_IF_SYNTHESIZER(macp, 0x4ff821);                        SET_IF_SYNTHESIZER(macp, 0xc5fbfc);                        SET_IF_SYNTHESIZER(macp, 0x21ebfe);                        SET_IF_SYNTHESIZER(macp, 0xaad401);                        SET_IF_SYNTHESIZER(macp, 0x6cf56a);                        SET_IF_SYNTHESIZER(macp, 0xe04073);                        SET_IF_SYNTHESIZER(macp, 0x193d76);                        SET_IF_SYNTHESIZER(macp, 0x9dd844);                        SET_IF_SYNTHESIZER(macp, 0x500007);                        SET_IF_SYNTHESIZER(macp, 0xd8c010);                        SET_IF_SYNTHESIZER(macp, 0x3c900);                        //Adapter->AL7230CCKSetFlag=0;                        SET_IF_SYNTHESIZER(macp, 0xbfffff);                        SET_IF_SYNTHESIZER(macp, 0x700000);                        SET_IF_SYNTHESIZER(macp, 0xf15d58);                        //AcquireCtrOfPhyReg(Adapter);                        //ZD1205_WRITE_REGISTER(Adapter, CR251, 0x2f);  //PLL_OFF                        mFILL_WRITE_REGISTER( ZD_CR251, 0x3f);  //PLL_ON                        mFILL_WRITE_REGISTER( ZD_CR128, 0x14);                        mFILL_WRITE_REGISTER( ZD_CR129, 0x12);                        mFILL_WRITE_REGISTER( ZD_CR130, 0x10);                        mFILL_WRITE_REGISTER( ZD_CR38, 0x38);                        mFILL_WRITE_REGISTER( ZD_CR136, 0xdf);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(1000);                        SET_IF_SYNTHESIZER(macp, 0xf15d59);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(10000);                        SET_IF_SYNTHESIZER(macp, 0xf15d5c);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(10000);                        SET_IF_SYNTHESIZER(macp, 0xf15d58);                } else {                        mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); // shdnb(PLL_ON)=0                        if((34 <= ChannelNo) && (ChannelNo <= 48)) {                                ChannelNo_temp=(ChannelNo/2)-13;                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);                        } else {                                ChannelNo_temp=(ChannelNo/4)-1;                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);                        }                        SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+3]);                        SET_IF_SYNTHESIZER(macp, 0x47f8a2);                        SET_IF_SYNTHESIZER(macp, 0xc5fbfa);                        //SET_IF_SYNTHESIZER(macp, 0x21ebf6);                        SET_IF_SYNTHESIZER(macp, 0xaafca1);                        SET_IF_SYNTHESIZER(macp, 0x6cf56a);                        SET_IF_SYNTHESIZER(macp, 0xe04073);                        SET_IF_SYNTHESIZER(macp, 0x193d76);                        SET_IF_SYNTHESIZER(macp, 0x9dd844);                        SET_IF_SYNTHESIZER(macp, 0x500607);                        SET_IF_SYNTHESIZER(macp, 0xd8c010);                        if((48 < ChannelNo) && (ChannelNo < 184)) {                                SET_IF_SYNTHESIZER(macp, 0x3c2800);                        } else {                                SET_IF_SYNTHESIZER(macp, 0x3e2800);                        }                        SET_IF_SYNTHESIZER(macp, 0xbfffff);                        SET_IF_SYNTHESIZER(macp, 0x700000);                        SET_IF_SYNTHESIZER(macp, 0xf35d48);                        //AcquireCtrOfPhyReg(Adapter);                        //ZD1205_WRITE_REGISTER(Adapter, CR251, 0x2f); // shdnb(PLL_ON)=0                        mFILL_WRITE_REGISTER( ZD_CR251, 0x3f); // shdnb(PLL_ON)=1                        mFILL_WRITE_REGISTER( ZD_CR128, 0x12);                        mFILL_WRITE_REGISTER( ZD_CR129, 0x10);                        mFILL_WRITE_REGISTER( ZD_CR130, 0x10);                        mFILL_WRITE_REGISTER( ZD_CR38, 0x7f);                        mFILL_WRITE_REGISTER( ZD_CR136, 0x5f);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(1000);                        SET_IF_SYNTHESIZER(macp, 0xf15d59);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(10000);                        SET_IF_SYNTHESIZER(macp, 0xf15d5c);                        ///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);                        ///NdisStallExecution(10000);                        SET_IF_SYNTHESIZER(macp, 0xf35d48);                }        } else {                if( MAC_Mode != PURE_A_MODE ) {                        mFILL_WRITE_REGISTER( ZD_CR251, 0x2f);  //PLL_OFF                        //SET_IF_SYNTHESIZER(macp, 0x0b3331);                        if ( 1 || mOldMacMode != MAC_Mode ) {                                SET_IF_SYNTHESIZER(macp, 0x4ff821);                                SET_IF_SYNTHESIZER(macp, 0xc5fbfc);                                SET_IF_SYNTHESIZER(macp, 0x21ebfe);                                SET_IF_SYNTHESIZER(macp, 0xaad401);                                SET_IF_SYNTHESIZER(macp, 0x6cf56a);                                SET_IF_SYNTHESIZER(macp, 0xe04073);                                SET_IF_SYNTHESIZER(macp, 0x193d76);                                SET_IF_SYNTHESIZER(macp, 0x9dd844);                                SET_IF_SYNTHESIZER(macp, 0x500007);                                SET_IF_SYNTHESIZER(macp, 0xd8c010);                                SET_IF_SYNTHESIZER(macp, 0x3c9000);                                SET_IF_SYNTHESIZER(macp, 0xf15d58);                                mFILL_WRITE_REGISTER( ZD_CR128, 0x14);                                mFILL_WRITE_REGISTER( ZD_CR129, 0x12);                                mFILL_WRITE_REGISTER( ZD_CR130, 0x10);                                mFILL_WRITE_REGISTER( ZD_CR38, 0x38);                                mFILL_WRITE_REGISTER( ZD_CR136, 0xdf);                                mOldMacMode = MAC_Mode;                        }                        //Adapter->AL7230CCKSetFlag=0;                        SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2]);                        SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2+1]);                        SET_IF_SYNTHESIZER(macp, 0x3c9000);                        mFILL_WRITE_REGISTER( ZD_CR251, 0x3f);  //PLL_ON                } else {                        mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); // shdnb(PLL_ON)=0                        if ( 1 || mOldMacMode != MAC_Mode ) {                                SET_IF_SYNTHESIZER(macp, 0x47f8a2);                                SET_IF_SYNTHESIZER(macp, 0xc5fbfa);                                SET_IF_SYNTHESIZER(macp, 0xaafca1);                                SET_IF_SYNTHESIZER(macp, 0x6cf56a);                                SET_IF_SYNTHESIZER(macp, 0xe04073);                                SET_IF_SYNTHESIZER(macp, 0x193d76);                                SET_IF_SYNTHESIZER(macp, 0x9dd844);                                SET_IF_SYNTHESIZER(macp, 0x500607);                                SET_IF_SYNTHESIZER(macp, 0xd8c010);                                SET_IF_SYNTHESIZER(macp, 0xf35d48);                                mFILL_WRITE_REGISTER( ZD_CR128, 0x12);                                mFILL_WRITE_REGISTER( ZD_CR129, 0x10);                                mFILL_WRITE_REGISTER( ZD_CR130, 0x10);                                mFILL_WRITE_REGISTER( ZD_CR38, 0x7f);                                mFILL_WRITE_REGISTER( ZD_CR136, 0x5f);                                mOldMacMode = MAC_Mode;                        }                        if((48 < ChannelNo) && (ChannelNo < 184)) {                                SET_IF_SYNTHESIZER(macp, 0x3c2800);                        } else {                                SET_IF_SYNTHESIZER(macp, 0x3e2800);                        }                        if((34 <= ChannelNo) && (ChannelNo <= 48)) {                                ChannelNo_temp=(ChannelNo/2)-13;                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+3]);                        } else {                                ChannelNo_temp=(ChannelNo/4)-1;                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);                                SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+3]);                        }                        mFILL_WRITE_REGISTER( ZD_CR251, 0x3f);  //PLL_ON                }        }        mFILL_WRITE_REGISTER( ZD_CR203, 0x06);        ZD1211_WRITE_MULTI_REG(WriteAddr, WriteData, &WriteIndex);        tmpValue = pObj->GetReg(reg, CtlReg1);        tmpValue |= ~0x80;        pObj->SetReg(reg, CtlReg1, tmpValue);        LockPhyReg(pObj);        pObj->SetReg(reg, ZD_CR240, 0x80);        pObj->CR203Flag = 2;        if (pObj->HWFeature & BIT_8) //CR47 CCK gain patch        {                tmpValue = pObj->GetReg(reg, E2P_PHY_REG);                pObj->SetReg(reg, ZD_CR47, (tmpValue & 0xff)); //This feature is OK to be overwritten with a lower value by other feature        }        if (pObj->HWFeature & BIT_21)  //6321 for FCC regulation, enabled per HWFeature 6M band edge bit (for AL2230, AL2230S)        {                if (ChannelNo == 1 || ChannelNo == 11)  //MARK_003, band edge, these may depend on PCB layout                {                        pObj->SetReg(reg, ZD_CR128, 0x12);                        pObj->SetReg(reg, ZD_CR129, 0x12);                        pObj->SetReg(reg, ZD_CR130, 0x10);                        pObj->SetReg(reg, ZD_CR47, 0x1E);                } else //(ChannelNo 2 ~ 10, 12 ~ 14)                {                        pObj->SetReg(reg, ZD_CR128, 0x14);                        pObj->SetReg(reg, ZD_CR129, 0x12);                        pObj->SetReg(reg, ZD_CR130, 0x10);                        pObj->SetReg(reg, ZD_CR47, 0x1E);                }        }        UnLockPhyReg(pObj);        //	pObj->CR31Flag = 2;        //   macp->PHY_G_6M_BandEdge_Flag = 0;        //	if(macp->PHY_36M_Setpoint_Flag != 0)        //	{        //		for(i=0;i<16;i++)        //			macp->a_Calibration_Data[2][i] = macp->PHY_36M_A_Calibration_Setpoint[i];        //		for(i=0;i<32;i++)        //			macp->a_Interpolation_Data[2][i] = macp->PHY_36M_A_Interpolation_Setpoint[i];        //		macp->PHY_36M_Setpoint_Flag = 0;        //	}}#else// 1215void HW_Set_AL7230B_RF_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly, U8 MAC_Mode){        void	*reg = pObj->reg;        U32		tmpValue;        U32		ChannelNo_temp;        int     i;        static  u8 mOldMacMode = MIXED_MODE;        U16     WriteAddr[256];        U16     WriteData[256];        U16     WriteIndex = 0;        LockPhyReg(pObj);        pObj->SetReg(reg, ZD_CR240, 0x57);        pObj->SetReg(reg, ZD_CR9, 0xe0);        UnLockPhyReg(pObj);        tmpValue = pObj->GetReg(reg, CtlReg1);        tmpValue &= ~0x80;        pObj->SetReg(reg, CtlReg1, tmpValue);        if (!InitChOnly) {                //mFILL_WRITE_REGISTER( ZD_CR9, 0xe0);//5119                mFILL_WRITE_REGISTER( ZD_CR10, 0x89);                mFILL_WRITE_REGISTER( ZD_CR15, 0x20);                mFILL_WRITE_REGISTER( ZD_CR17, 0x2B);//for newest(3rd cut)AL2230                mFILL_WRITE_REGISTER( ZD_CR20, 0x10);//4N25->Stone Request                mFILL_WRITE_REGISTER( ZD_CR23, 0x40);                mFILL_WRITE_REGISTER( ZD_CR24, 0x20);                mFILL_WRITE_REGISTER( ZD_CR26, 0x93);                mFILL_WRITE_REGISTER( ZD_CR28, 0x3e);                mFILL_WRITE_REGISTER( ZD_CR29, 0x00);                mFILL_WRITE_REGISTER( ZD_CR33, 0x28);	//5613                mFILL_WRITE_REGISTER( ZD_CR34, 0x30);                mFILL_WRITE_REGISTER( ZD_CR35, 0x3e);  //for newest(3rd cut) AL2230                mFILL_WRITE_REGISTER( ZD_CR41, 0x24);                mFILL_WRITE_REGISTER( ZD_CR44, 0x32);                mFILL_WRITE_REGISTER( ZD_CR46, 0x99);  //for newest(3rd cut) AL2230                mFILL_WRITE_REGISTER( ZD_CR47, 0x1e);                mFILL_WRITE_REGISTER( ZD_CR48, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR49, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR51, 0x01);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR52, 0x80);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR53, 0x7e);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR65, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR66, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR67, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR68, 0x00);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR69, 0x28);	//ZD1215 5610                mFILL_WRITE_REGISTER( ZD_CR79, 0x58);                mFILL_WRITE_REGISTER( ZD_CR80, 0x30);                mFILL_WRITE_REGISTER( ZD_CR81, 0x30);                mFILL_WRITE_REGISTER( ZD_CR87, 0x0A);                mFILL_WRITE_REGISTER( ZD_CR89, 0x04);                mFILL_WRITE_REGISTER( ZD_CR90, 0x58);  //5112                mFILL_WRITE_REGISTER( ZD_CR91, 0x00);  //5613                mFILL_WRITE_REGISTER( ZD_CR92, 0x0a);                mFILL_WRITE_REGISTER( ZD_CR98, 0x8d);  //4804, for 1212 new algorithm                mFILL_WRITE_REGISTER( ZD_CR99, 0x00);                mFILL_WRITE_REGISTER( ZD_CR100, 0x02);             

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -