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

📄 zdhw.c

📁 ZYDAS zd1211b driver for Linux2.4
💻 C
📖 第 1 页 / 共 5 页
字号:
#else        //LockPhyReg(pObj);        tmpvalue = pObj->GetReg(reg, ZD_CR203);        tmpvalue |= BIT_4;        pObj->SetReg(reg, ZD_CR203, tmpvalue);        //UnLockPhyReg(pObj);#endif        UnLockPhyReg(pObj);}voidHW_Set_GCT_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){        void *reg = pObj->reg;        if (!InitChOnly) {                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR47, 0x1E);                pObj->SetReg(reg, ZD_CR15, 0xdc);                pObj->SetReg(reg, ZD_CR113, 0xc0); //3910                pObj->SetReg(reg, ZD_CR20, 0x0c);                pObj->SetReg(reg, ZD_CR17, 0x65);                pObj->SetReg(reg, ZD_CR34, 0x04);                pObj->SetReg(reg, ZD_CR35, 0x35);                pObj->SetReg(reg, ZD_CR24, 0x20);                pObj->SetReg(reg, ZD_CR9, 0xe0);                pObj->SetReg(reg, ZD_CR127, 0x02);                pObj->SetReg(reg, ZD_CR10, 0x91);                pObj->SetReg(reg, ZD_CR23, 0x7f);                pObj->SetReg(reg, ZD_CR27, 0x10);                pObj->SetReg(reg, ZD_CR28, 0x7a);                pObj->SetReg(reg, ZD_CR79, 0xb5);                pObj->SetReg(reg, ZD_CR64, 0x80);                //++ Enable D.C cancellation (CR33 Bit_5) to avoid                //	 CCA always high.                pObj->SetReg(reg, ZD_CR33, 0x28);                //--                pObj->SetReg(reg, ZD_CR38, 0x30);                UnLockPhyReg(pObj);                HW_Set_IF_Synthesizer(pObj, 0x1F0000);                HW_Set_IF_Synthesizer(pObj, 0x1F0000);                HW_Set_IF_Synthesizer(pObj, 0x1F0200);                HW_Set_IF_Synthesizer(pObj, 0x1F0600);                HW_Set_IF_Synthesizer(pObj, 0x1F8600);                HW_Set_IF_Synthesizer(pObj, 0x1F8600);                HW_Set_IF_Synthesizer(pObj, 0x002050);                HW_Set_IF_Synthesizer(pObj, 0x1F8000);                HW_Set_IF_Synthesizer(pObj, 0x1F8200);                HW_Set_IF_Synthesizer(pObj, 0x1F8600);                HW_Set_IF_Synthesizer(pObj, 0x1c0000);                HW_Set_IF_Synthesizer(pObj, 0x10c458);                HW_Set_IF_Synthesizer(pObj, 0x088e92);                HW_Set_IF_Synthesizer(pObj, 0x187b82);                HW_Set_IF_Synthesizer(pObj, 0x0401b4);                HW_Set_IF_Synthesizer(pObj, 0x140816);                HW_Set_IF_Synthesizer(pObj, 0x0c7000);                HW_Set_IF_Synthesizer(pObj, 0x1c0000);                HW_Set_IF_Synthesizer(pObj, 0x02ccae);                HW_Set_IF_Synthesizer(pObj, 0x128023);                HW_Set_IF_Synthesizer(pObj, 0x0a0000);                HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]);                HW_Set_IF_Synthesizer(pObj, 0x06e380);                HW_Set_IF_Synthesizer(pObj, 0x16cb94);                HW_Set_IF_Synthesizer(pObj, 0x0e1740);                HW_Set_IF_Synthesizer(pObj, 0x014980);                HW_Set_IF_Synthesizer(pObj, 0x116240);                HW_Set_IF_Synthesizer(pObj, 0x090000);                HW_Set_IF_Synthesizer(pObj, 0x192304);                HW_Set_IF_Synthesizer(pObj, 0x05112f);                HW_Set_IF_Synthesizer(pObj, 0x0d54a8);                HW_Set_IF_Synthesizer(pObj, 0x0f8000);                HW_Set_IF_Synthesizer(pObj, 0x1c0008);                HW_Set_IF_Synthesizer(pObj, 0x1c0000);                HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]);                HW_Set_IF_Synthesizer(pObj, 0x1c0008);                HW_Set_IF_Synthesizer(pObj, 0x150000);                HW_Set_IF_Synthesizer(pObj, 0x0c7000);                HW_Set_IF_Synthesizer(pObj, 0x150800);                HW_Set_IF_Synthesizer(pObj, 0x150000);        } else {                HW_Set_IF_Synthesizer(pObj, 0x1c0000);                HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]);                HW_Set_IF_Synthesizer(pObj, 0x1c0008);        }}voidHW_Set_AL2210MPVB_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){        void *reg = pObj->reg;        U32	tmpvalue;        pObj->SetReg(reg, ZD_PE1_PE2, 2);        if (!InitChOnly) {                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR9, 0xe0);                pObj->SetReg(reg, ZD_CR10, 0x91);                pObj->SetReg(reg, ZD_CR12, 0x90);                pObj->SetReg(reg, ZD_CR15, 0xd0);                pObj->SetReg(reg, ZD_CR16, 0x40);                pObj->SetReg(reg, ZD_CR17, 0x58);                pObj->SetReg(reg, ZD_CR18, 0x04);                pObj->SetReg(reg, ZD_CR23, 0x66);                pObj->SetReg(reg, ZD_CR24, 0x14);                pObj->SetReg(reg, ZD_CR26, 0x90);                pObj->SetReg(reg, ZD_CR27, 0x30);                pObj->SetReg(reg, ZD_CR31, 0x80);                pObj->SetReg(reg, ZD_CR34, 0x06);                pObj->SetReg(reg, ZD_CR35, 0x3e);                pObj->SetReg(reg, ZD_CR38, 0x38);                pObj->SetReg(reg, ZD_CR46, 0x90);                pObj->SetReg(reg, ZD_CR47, 0x1E);                pObj->SetReg(reg, ZD_CR64, 0x64);                pObj->SetReg(reg, ZD_CR79, 0xb5);                pObj->SetReg(reg, ZD_CR80, 0x38);                pObj->SetReg(reg, ZD_CR81, 0x30);                pObj->SetReg(reg, ZD_CR113, 0xc0);                pObj->SetReg(reg, ZD_CR127, 0x03);                UnLockPhyReg(pObj);                HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]);                HW_Set_IF_Synthesizer(pObj, 0x00fcb1);                HW_Set_IF_Synthesizer(pObj, 0x358132);                HW_Set_IF_Synthesizer(pObj, 0x0108b3);                HW_Set_IF_Synthesizer(pObj, 0xc77804);                HW_Set_IF_Synthesizer(pObj, 0x456415);                HW_Set_IF_Synthesizer(pObj, 0xff2226);                HW_Set_IF_Synthesizer(pObj, 0x806667);                HW_Set_IF_Synthesizer(pObj, 0x7860f8);                HW_Set_IF_Synthesizer(pObj, 0xbb01c9);                HW_Set_IF_Synthesizer(pObj, 0x00000A);                HW_Set_IF_Synthesizer(pObj, 0x00000B);                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR47, 0x1E);                tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD);                tmpvalue &= ~BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                tmpvalue |= BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                pObj->SetReg(reg, ZD_RFCFG, 0x5);                pObj->DelayUs(100);                pObj->SetReg(reg, ZD_RFCFG, 0x0);                pObj->SetReg(reg, ZD_CR47, 0x1E);                UnLockPhyReg(pObj);        } else {                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR47, 0x1E);                tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD);                tmpvalue &= ~BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                tmpvalue |= BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                pObj->SetReg(reg, ZD_RFCFG, 0x5);                pObj->DelayUs(100);                pObj->SetReg(reg, ZD_RFCFG, 0x0);                pObj->SetReg(reg, ZD_CR47, 0x1E);                UnLockPhyReg(pObj);                HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]);        }        pObj->SetReg(reg, ZD_PE1_PE2, 3);}voidHW_Set_AL2210_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){        void *reg = pObj->reg;        U32	tmpvalue;        pObj->SetReg(reg, ZD_PE1_PE2, 2);        if (!InitChOnly) {                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR9, 0xe0);                pObj->SetReg(reg, ZD_CR10, 0x91);                pObj->SetReg(reg, ZD_CR12, 0x90);                pObj->SetReg(reg, ZD_CR15, 0xd0);                pObj->SetReg(reg, ZD_CR16, 0x40);                pObj->SetReg(reg, ZD_CR17, 0x58);                pObj->SetReg(reg, ZD_CR18, 0x04);                pObj->SetReg(reg, ZD_CR23, 0x66);                pObj->SetReg(reg, ZD_CR24, 0x14);                pObj->SetReg(reg, ZD_CR26, 0x90);                pObj->SetReg(reg, ZD_CR31, 0x80);                pObj->SetReg(reg, ZD_CR34, 0x06);                pObj->SetReg(reg, ZD_CR35, 0x3e);                pObj->SetReg(reg, ZD_CR38, 0x38);                pObj->SetReg(reg, ZD_CR46, 0x90);                pObj->SetReg(reg, ZD_CR47, 0x1E);                pObj->SetReg(reg, ZD_CR64, 0x64);                pObj->SetReg(reg, ZD_CR79, 0xb5);                pObj->SetReg(reg, ZD_CR80, 0x38);                pObj->SetReg(reg, ZD_CR81, 0x30);                pObj->SetReg(reg, ZD_CR113, 0xc0);                pObj->SetReg(reg, ZD_CR127, 0x3);                UnLockPhyReg(pObj);                HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]);                HW_Set_IF_Synthesizer(pObj, 0x00fcb1);                HW_Set_IF_Synthesizer(pObj, 0x358132);                HW_Set_IF_Synthesizer(pObj, 0x0108b3);                HW_Set_IF_Synthesizer(pObj, 0xc77804);                HW_Set_IF_Synthesizer(pObj, 0x456415);                HW_Set_IF_Synthesizer(pObj, 0xff2226);                HW_Set_IF_Synthesizer(pObj, 0x806667);                HW_Set_IF_Synthesizer(pObj, 0x7860f8);                HW_Set_IF_Synthesizer(pObj, 0xbb01c9);                HW_Set_IF_Synthesizer(pObj, 0x00000A);                HW_Set_IF_Synthesizer(pObj, 0x00000B);                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR47, 0x1E);                tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD);                tmpvalue &= ~BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                tmpvalue |= BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                pObj->SetReg(reg, ZD_RFCFG, 0x5);                pObj->DelayUs(100);                pObj->SetReg(reg, ZD_RFCFG, 0x0);                pObj->SetReg(reg, ZD_CR47, 0x1E);                UnLockPhyReg(pObj);        } else {                LockPhyReg(pObj);                pObj->SetReg(reg, ZD_CR47, 0x1E);                tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD);                tmpvalue &= ~BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                tmpvalue |= BIT_0;                pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue);                pObj->SetReg(reg, ZD_RFCFG, 0x5);                pObj->DelayUs(100);                pObj->SetReg(reg, ZD_RFCFG, 0x0);                pObj->SetReg(reg, ZD_CR47, 0x1E);                UnLockPhyReg(pObj);                HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]);        }        pObj->SetReg(reg, ZD_PE1_PE2, 3);}//------------------------------------------------------------------------------// Procedure:	 HW_Set_AL7230B_Chips//// Description://// Arguments://		Adapter - ptr to Adapter object instance//		ChannelNo//		Initial Channel only//// Returns:		(none)//// Note://-------------------------------------------------------------------------------#ifndef ZD1211B// 1211void 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);        UnLockPhyReg(pObj);        tmpValue = pObj->GetReg(reg, CtlReg1);        tmpValue &= ~0x80;        pObj->SetReg(reg, CtlReg1, tmpValue);        if (!InitChOnly) {                mFILL_WRITE_REGISTER( ZD_CR15, 0x20);                mFILL_WRITE_REGISTER( ZD_CR23, 0x40);                mFILL_WRITE_REGISTER( ZD_CR24, 0x20);                mFILL_WRITE_REGISTER( ZD_CR26, 0x11);                mFILL_WRITE_REGISTER( ZD_CR28, 0x3e);                mFILL_WRITE_REGISTER( ZD_CR29, 0x00);                mFILL_WRITE_REGISTER( ZD_CR44, 0x33);                mFILL_WRITE_REGISTER( ZD_CR106, 0x22);  //from 0x2a to 0x22 for AL7230B                mFILL_WRITE_REGISTER( ZD_CR107, 0x1a);                mFILL_WRITE_REGISTER( ZD_CR109, 0x9);                mFILL_WRITE_REGISTER( ZD_CR110, 0x27);                mFILL_WRITE_REGISTER( ZD_CR111, 0x2b);                mFILL_WRITE_REGISTER( ZD_CR112, 0x2b);                mFILL_WRITE_REGISTER( ZD_CR119, 0xa);                mFILL_WRITE_REGISTER( ZD_CR122, 0xfc); //from /e0 to fc for AL7230B

⌨️ 快捷键说明

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