]>
Commit | Line | Data |
---|---|---|
91980990 GKH |
1 | /* |
2 | ************************************************************************* | |
3 | * Ralink Tech Inc. | |
4 | * 5F., No.36, Taiyuan St., Jhubei City, | |
5 | * Hsinchu County 302, | |
6 | * Taiwan, R.O.C. | |
7 | * | |
8 | * (c) Copyright 2002-2007, Ralink Technology, Inc. | |
9 | * | |
10 | * This program is free software; you can redistribute it and/or modify * | |
11 | * it under the terms of the GNU General Public License as published by * | |
12 | * the Free Software Foundation; either version 2 of the License, or * | |
13 | * (at your option) any later version. * | |
14 | * * | |
15 | * This program is distributed in the hope that it will be useful, * | |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
18 | * GNU General Public License for more details. * | |
19 | * * | |
20 | * You should have received a copy of the GNU General Public License * | |
21 | * along with this program; if not, write to the * | |
22 | * Free Software Foundation, Inc., * | |
23 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | |
24 | * * | |
25 | ************************************************************************* | |
26 | ||
27 | Module Name: | |
28 | eeprom.c | |
29 | ||
30 | Abstract: | |
31 | ||
32 | Revision History: | |
33 | Who When What | |
34 | -------- ---------- ---------------------------------------------- | |
35 | Name Date Modification logs | |
36 | */ | |
37 | #include "../rt_config.h" | |
38 | ||
59fe2d89 | 39 | |
ca97b838 BZ |
40 | INT RtmpChipOpsEepromHook( |
41 | IN RTMP_ADAPTER *pAd, | |
42 | IN INT infType) | |
59fe2d89 | 43 | { |
ca97b838 BZ |
44 | RTMP_CHIP_OP *pChipOps = &pAd->chipOps; |
45 | #ifdef RT30xx | |
46 | #ifdef RTMP_EFUSE_SUPPORT | |
47 | UINT32 eFuseCtrl, MacCsr0; | |
48 | int index; | |
59fe2d89 | 49 | |
ca97b838 | 50 | index = 0; |
59fe2d89 BZ |
51 | do |
52 | { | |
ca97b838 BZ |
53 | RTMP_IO_READ32(pAd, MAC_CSR0, &MacCsr0); |
54 | pAd->MACVersion = MacCsr0; | |
59fe2d89 | 55 | |
ca97b838 | 56 | if ((pAd->MACVersion != 0x00) && (pAd->MACVersion != 0xFFFFFFFF)) |
59fe2d89 BZ |
57 | break; |
58 | ||
ca97b838 BZ |
59 | RTMPusecDelay(10); |
60 | } while (index++ < 100); | |
59fe2d89 | 61 | |
ca97b838 BZ |
62 | pAd->bUseEfuse=FALSE; |
63 | RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrl); | |
64 | pAd->bUseEfuse = ( (eFuseCtrl & 0x80000000) == 0x80000000) ? 1 : 0; | |
65 | if(pAd->bUseEfuse) | |
59fe2d89 | 66 | { |
ca97b838 BZ |
67 | pChipOps->eeinit = eFuse_init; |
68 | pChipOps->eeread = rtmp_ee_efuse_read16; | |
69 | pChipOps->eewrite = rtmp_ee_efuse_write16; | |
70 | return 0 ; | |
59fe2d89 | 71 | } |
59fe2d89 | 72 | else |
59fe2d89 | 73 | { |
ca97b838 BZ |
74 | pAd->bFroceEEPROMBuffer = FALSE; |
75 | DBGPRINT(RT_DEBUG_TRACE, ("NVM is EEPROM\n")); | |
59fe2d89 | 76 | } |
ca97b838 BZ |
77 | #endif // RTMP_EFUSE_SUPPORT // |
78 | #endif // RT30xx // | |
59fe2d89 | 79 | |
ca97b838 | 80 | switch(infType) |
59fe2d89 | 81 | { |
ca97b838 BZ |
82 | #ifdef RTMP_PCI_SUPPORT |
83 | case RTMP_DEV_INF_PCI: | |
84 | pChipOps->eeinit = NULL; | |
85 | pChipOps->eeread = rtmp_ee_prom_read16; | |
86 | pChipOps->eewrite = rtmp_ee_prom_write16; | |
59fe2d89 | 87 | break; |
ca97b838 BZ |
88 | #endif // RTMP_PCI_SUPPORT // |
89 | #ifdef RTMP_USB_SUPPORT | |
90 | case RTMP_DEV_INF_USB: | |
91 | pChipOps->eeinit = NULL; | |
92 | pChipOps->eeread = RTUSBReadEEPROM16; | |
93 | pChipOps->eewrite = RTUSBWriteEEPROM16; | |
59fe2d89 | 94 | break; |
ca97b838 | 95 | #endif // RTMP_USB_SUPPORT // |
59fe2d89 | 96 | |
ca97b838 BZ |
97 | default: |
98 | DBGPRINT(RT_DEBUG_ERROR, ("RtmpChipOpsEepromHook() failed!\n")); | |
59fe2d89 BZ |
99 | break; |
100 | } | |
59fe2d89 | 101 | |
ca97b838 | 102 | return 0; |
91980990 | 103 | } |