1/* SPDX-License-Identifier: GPL-2.0 */
2/******************************************************************************
3 *
4 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
5 *
6 ******************************************************************************/
7#ifndef __RTL871X_EEPROM_H__
8#define __RTL871X_EEPROM_H__
9
10#include "osdep_service.h"
11
12#define	RTL8712_EEPROM_ID		0x8712
13#define	EEPROM_MAX_SIZE			256
14#define	CLOCK_RATE			50	/*100us*/
15
16/*- EEPROM opcodes*/
17#define EEPROM_READ_OPCODE		06
18#define EEPROM_WRITE_OPCODE		05
19#define EEPROM_ERASE_OPCODE		07
20#define EEPROM_EWEN_OPCODE		19      /* Erase/write enable*/
21#define EEPROM_EWDS_OPCODE		16      /* Erase/write disable*/
22
23#define	EEPROM_CID_DEFAULT		0x0
24#define	EEPROM_CID_ALPHA		0x1
25#define	EEPROM_CID_Senao		0x3
26#define	EEPROM_CID_NetCore		0x5
27#define	EEPROM_CID_CAMEO		0X8
28#define	EEPROM_CID_SITECOM		0x9
29#define	EEPROM_CID_COREGA		0xB
30#define	EEPROM_CID_EDIMAX_BELKIN	0xC
31#define	EEPROM_CID_SERCOMM_BELKIN	0xE
32#define	EEPROM_CID_CAMEO1		0xF
33#define	EEPROM_CID_WNC_COREGA		0x12
34#define	EEPROM_CID_CLEVO		0x13
35#define	EEPROM_CID_WHQL			0xFE
36
37enum RT_CUSTOMER_ID {
38	RT_CID_DEFAULT = 0,
39	RT_CID_8187_ALPHA0 = 1,
40	RT_CID_8187_SERCOMM_PS = 2,
41	RT_CID_8187_HW_LED = 3,
42	RT_CID_8187_NETGEAR = 4,
43	RT_CID_WHQL = 5,
44	RT_CID_819x_CAMEO  = 6,
45	RT_CID_819x_RUNTOP = 7,
46	RT_CID_819x_Senao = 8,
47	RT_CID_TOSHIBA = 9,
48	RT_CID_819x_Netcore = 10,
49	RT_CID_Nettronix = 11,
50	RT_CID_DLINK = 12,
51	RT_CID_PRONET = 13,
52	RT_CID_COREGA = 14,
53	RT_CID_819x_ALPHA = 15,
54	RT_CID_819x_Sitecom = 16,
55	RT_CID_CCX = 17,
56	RT_CID_819x_Lenovo = 18,
57	RT_CID_819x_QMI = 19,
58	RT_CID_819x_Edimax_Belkin = 20,
59	RT_CID_819x_Sercomm_Belkin = 21,
60	RT_CID_819x_CAMEO1 = 22,
61	RT_CID_819x_MSI = 23,
62	RT_CID_819x_Acer = 24,
63	RT_CID_819x_AzWave_ASUS = 25,
64	RT_CID_819x_AzWave = 26,
65	RT_CID_819x_WNC_COREGA = 27,
66	RT_CID_819x_CLEVO = 28,
67};
68
69struct eeprom_priv {
70	u8 bautoload_fail_flag;
71	u8 bempty;
72	u8 sys_config;
73	u8 mac_addr[6];
74	u8 config0;
75	u16 channel_plan;
76	u8 country_string[3];
77	u8 tx_power_b[15];
78	u8 tx_power_g[15];
79	u8 tx_power_a[201];
80	u8 efuse_eeprom_data[EEPROM_MAX_SIZE];
81	enum RT_CUSTOMER_ID CustomerID;
82};
83
84void r8712_eeprom_write16(struct _adapter *padapter, u16 reg, u16 data);
85u16 r8712_eeprom_read16(struct _adapter *padapter, u16 reg);
86
87#endif  /*__RTL871X_EEPROM_H__*/
88
89