1*4882a593Smuzhiyun /****************************************************************************** 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * Copyright(c) 2007 - 2017 Realtek Corporation. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it 6*4882a593Smuzhiyun * under the terms of version 2 of the GNU General Public License as 7*4882a593Smuzhiyun * published by the Free Software Foundation. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, but WITHOUT 10*4882a593Smuzhiyun * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11*4882a593Smuzhiyun * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12*4882a593Smuzhiyun * more details. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun *****************************************************************************/ 15*4882a593Smuzhiyun #ifndef __RTW_EEPROM_H__ 16*4882a593Smuzhiyun #define __RTW_EEPROM_H__ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define RTL8712_EEPROM_ID 0x8712 20*4882a593Smuzhiyun /* #define EEPROM_MAX_SIZE 256 */ 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #define HWSET_MAX_SIZE_128 128 23*4882a593Smuzhiyun #define HWSET_MAX_SIZE_256 256 24*4882a593Smuzhiyun #define HWSET_MAX_SIZE_512 512 25*4882a593Smuzhiyun #define HWSET_MAX_SIZE_1024 1024 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun #define EEPROM_MAX_SIZE HWSET_MAX_SIZE_1024 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define CLOCK_RATE 50 /* 100us */ 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* - EEPROM opcodes */ 32*4882a593Smuzhiyun #define EEPROM_READ_OPCODE 06 33*4882a593Smuzhiyun #define EEPROM_WRITE_OPCODE 05 34*4882a593Smuzhiyun #define EEPROM_ERASE_OPCODE 07 35*4882a593Smuzhiyun #define EEPROM_EWEN_OPCODE 19 /* Erase/write enable */ 36*4882a593Smuzhiyun #define EEPROM_EWDS_OPCODE 16 /* Erase/write disable */ 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /* Country codes */ 39*4882a593Smuzhiyun #define USA 0x555320 40*4882a593Smuzhiyun #define EUROPE 0x1 /* temp, should be provided later */ 41*4882a593Smuzhiyun #define JAPAN 0x2 /* temp, should be provided later */ 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /* 44*4882a593Smuzhiyun * Customer ID, note that: 45*4882a593Smuzhiyun * This variable is initiailzed through EEPROM or registry, 46*4882a593Smuzhiyun * however, its definition may be different with that in EEPROM for 47*4882a593Smuzhiyun * EEPROM size consideration. So, we have to perform proper translation between them. 48*4882a593Smuzhiyun * Besides, CustomerID of registry has precedence of that of EEPROM. 49*4882a593Smuzhiyun * defined below. 060703, by rcnjko. 50*4882a593Smuzhiyun * */ 51*4882a593Smuzhiyun typedef enum _RT_CUSTOMER_ID { 52*4882a593Smuzhiyun RT_CID_DEFAULT = 0, 53*4882a593Smuzhiyun RT_CID_8187_ALPHA0 = 1, 54*4882a593Smuzhiyun RT_CID_8187_SERCOMM_PS = 2, 55*4882a593Smuzhiyun RT_CID_8187_HW_LED = 3, 56*4882a593Smuzhiyun RT_CID_8187_NETGEAR = 4, 57*4882a593Smuzhiyun RT_CID_WHQL = 5, 58*4882a593Smuzhiyun RT_CID_819x_CAMEO = 6, 59*4882a593Smuzhiyun RT_CID_819x_RUNTOP = 7, 60*4882a593Smuzhiyun RT_CID_819x_Senao = 8, 61*4882a593Smuzhiyun RT_CID_TOSHIBA = 9, /* Merge by Jacken, 2008/01/31. */ 62*4882a593Smuzhiyun RT_CID_819x_Netcore = 10, 63*4882a593Smuzhiyun RT_CID_Nettronix = 11, 64*4882a593Smuzhiyun RT_CID_DLINK = 12, 65*4882a593Smuzhiyun RT_CID_PRONET = 13, 66*4882a593Smuzhiyun RT_CID_COREGA = 14, 67*4882a593Smuzhiyun RT_CID_CHINA_MOBILE = 15, 68*4882a593Smuzhiyun RT_CID_819x_ALPHA = 16, 69*4882a593Smuzhiyun RT_CID_819x_Sitecom = 17, 70*4882a593Smuzhiyun RT_CID_CCX = 18, /* It's set under CCX logo test and isn't demanded for CCX functions, but for test behavior like retry limit and tx report. By Bruce, 2009-02-17. */ 71*4882a593Smuzhiyun RT_CID_819X_LENOVO = 19, 72*4882a593Smuzhiyun RT_CID_819x_QMI = 20, 73*4882a593Smuzhiyun RT_CID_819x_Edimax_Belkin = 21, 74*4882a593Smuzhiyun RT_CID_819x_Sercomm_Belkin = 22, 75*4882a593Smuzhiyun RT_CID_819x_CAMEO1 = 23, 76*4882a593Smuzhiyun RT_CID_819x_MSI = 24, 77*4882a593Smuzhiyun RT_CID_819X_ACER = 25, 78*4882a593Smuzhiyun RT_CID_819x_AzWave_ASUS = 26, 79*4882a593Smuzhiyun RT_CID_819x_AzWave = 27, /* For AzWave in PCIe, The ID is AzWave use and not only Asus */ 80*4882a593Smuzhiyun RT_CID_819x_HP = 28, 81*4882a593Smuzhiyun RT_CID_819x_WNC_COREGA = 29, 82*4882a593Smuzhiyun RT_CID_819x_Arcadyan_Belkin = 30, 83*4882a593Smuzhiyun RT_CID_819x_SAMSUNG = 31, 84*4882a593Smuzhiyun RT_CID_819x_CLEVO = 32, 85*4882a593Smuzhiyun RT_CID_819x_DELL = 33, 86*4882a593Smuzhiyun RT_CID_819x_PRONETS = 34, 87*4882a593Smuzhiyun RT_CID_819x_Edimax_ASUS = 35, 88*4882a593Smuzhiyun RT_CID_NETGEAR = 36, 89*4882a593Smuzhiyun RT_CID_PLANEX = 37, 90*4882a593Smuzhiyun RT_CID_CC_C = 38, 91*4882a593Smuzhiyun RT_CID_819x_Xavi = 39, 92*4882a593Smuzhiyun RT_CID_LENOVO_CHINA = 40, 93*4882a593Smuzhiyun RT_CID_INTEL_CHINA = 41, 94*4882a593Smuzhiyun RT_CID_TPLINK_HPWR = 42, 95*4882a593Smuzhiyun RT_CID_819x_Sercomm_Netgear = 43, 96*4882a593Smuzhiyun RT_CID_819x_ALPHA_Dlink = 44,/* add by ylb 20121012 for customer led for alpha */ 97*4882a593Smuzhiyun RT_CID_WNC_NEC = 45,/* add by page for NEC */ 98*4882a593Smuzhiyun RT_CID_DNI_BUFFALO = 46,/* add by page for NEC */ 99*4882a593Smuzhiyun } RT_CUSTOMER_ID, *PRT_CUSTOMER_ID; 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun extern void eeprom_write16(_adapter *padapter, u16 reg, u16 data); 102*4882a593Smuzhiyun extern u16 eeprom_read16(_adapter *padapter, u16 reg); 103*4882a593Smuzhiyun extern void read_eeprom_content(_adapter *padapter); 104*4882a593Smuzhiyun extern void eeprom_read_sz(_adapter *padapter, u16 reg, u8 *data, u32 sz); 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun extern void read_eeprom_content_by_attrib(_adapter *padapter); 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun #ifdef PLATFORM_LINUX 109*4882a593Smuzhiyun #ifdef CONFIG_ADAPTOR_INFO_CACHING_FILE 110*4882a593Smuzhiyun extern int isAdaptorInfoFileValid(void); 111*4882a593Smuzhiyun extern int storeAdaptorInfoFile(char *path, u8 *efuse_data); 112*4882a593Smuzhiyun extern int retriveAdaptorInfoFile(char *path, u8 *efuse_data); 113*4882a593Smuzhiyun #endif /* CONFIG_ADAPTOR_INFO_CACHING_FILE */ 114*4882a593Smuzhiyun #endif /* PLATFORM_LINUX */ 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun #endif /* __RTL871X_EEPROM_H__ */ 117