]> bbs.cooldavid.org Git - net-next-2.6.git/blob - drivers/staging/rt2860/common/eeprom.c
Staging: rt28x0: fix comments in common/*.c files
[net-next-2.6.git] / drivers / staging / rt2860 / common / eeprom.c
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
39 INT RtmpChipOpsEepromHook(IN RTMP_ADAPTER * pAd, IN INT infType)
40 {
41         RTMP_CHIP_OP *pChipOps = &pAd->chipOps;
42 #ifdef RT30xx
43 #ifdef RTMP_EFUSE_SUPPORT
44         UINT32 eFuseCtrl, MacCsr0;
45         int index;
46
47         index = 0;
48         do {
49                 RTMP_IO_READ32(pAd, MAC_CSR0, &MacCsr0);
50                 pAd->MACVersion = MacCsr0;
51
52                 if ((pAd->MACVersion != 0x00)
53                     && (pAd->MACVersion != 0xFFFFFFFF))
54                         break;
55
56                 RTMPusecDelay(10);
57         } while (index++ < 100);
58
59         pAd->bUseEfuse = FALSE;
60         RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrl);
61         pAd->bUseEfuse = ((eFuseCtrl & 0x80000000) == 0x80000000) ? 1 : 0;
62         if (pAd->bUseEfuse) {
63                 pChipOps->eeinit = eFuse_init;
64                 pChipOps->eeread = rtmp_ee_efuse_read16;
65                 return 0;
66         } else
67                 DBGPRINT(RT_DEBUG_TRACE, ("NVM is EEPROM\n"));
68 #endif /* RTMP_EFUSE_SUPPORT // */
69 #endif /* RT30xx // */
70
71         switch (infType) {
72 #ifdef RTMP_PCI_SUPPORT
73         case RTMP_DEV_INF_PCI:
74                 pChipOps->eeinit = NULL;
75                 pChipOps->eeread = rtmp_ee_prom_read16;
76                 break;
77 #endif /* RTMP_PCI_SUPPORT // */
78 #ifdef RTMP_USB_SUPPORT
79         case RTMP_DEV_INF_USB:
80                 pChipOps->eeinit = NULL;
81                 pChipOps->eeread = RTUSBReadEEPROM16;
82                 break;
83 #endif /* RTMP_USB_SUPPORT // */
84
85         default:
86                 DBGPRINT(RT_DEBUG_ERROR, ("RtmpChipOpsEepromHook() failed!\n"));
87                 break;
88         }
89
90         return 0;
91 }