0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef __RTL8712_HAL_H__
0015 #define __RTL8712_HAL_H__
0016
0017 enum _HW_VERSION {
0018 RTL8712_FPGA,
0019 RTL8712_1stCUT,
0020 RTL8712_2ndCUT,
0021 RTL8712_3rdCUT,
0022 };
0023
0024 enum _LOOPBACK_TYPE {
0025 RTL8712_AIR_TRX = 0,
0026 RTL8712_MAC_LBK,
0027 RTL8712_BB_LBK,
0028 RTL8712_MAC_FW_LBK = 4,
0029 RTL8712_BB_FW_LBK = 8,
0030 };
0031
0032 enum RTL871X_HCI_TYPE {
0033 RTL8712_SDIO,
0034 RTL8712_USB,
0035 };
0036
0037 enum RTL8712_RF_CONFIG {
0038 RTL8712_RF_1T1R,
0039 RTL8712_RF_1T2R,
0040 RTL8712_RF_2T2R
0041 };
0042
0043 enum _RTL8712_HCI_TYPE_ {
0044 RTL8712_HCI_TYPE_PCIE = 0x01,
0045 RTL8712_HCI_TYPE_AP_PCIE = 0x81,
0046 RTL8712_HCI_TYPE_USB = 0x02,
0047 RTL8712_HCI_TYPE_92USB = 0x02,
0048 RTL8712_HCI_TYPE_AP_USB = 0x82,
0049 RTL8712_HCI_TYPE_72USB = 0x12,
0050 RTL8712_HCI_TYPE_SDIO = 0x04,
0051 RTL8712_HCI_TYPE_72SDIO = 0x14
0052 };
0053
0054 struct fw_priv {
0055
0056 unsigned char signature_0;
0057 unsigned char signature_1;
0058 unsigned char hci_sel;
0059
0060
0061 unsigned char chip_version;
0062 unsigned char customer_ID_0;
0063 unsigned char customer_ID_1;
0064 unsigned char rf_config;
0065
0066
0067 unsigned char usb_ep_num;
0068
0069 unsigned char regulatory_class_0;
0070 unsigned char regulatory_class_1;
0071 unsigned char regulatory_class_2;
0072 unsigned char regulatory_class_3;
0073 unsigned char rfintfs;
0074 unsigned char def_nettype;
0075 unsigned char turbo_mode;
0076 unsigned char low_power_mode;
0077
0078 unsigned char lbk_mode;
0079 unsigned char mp_mode;
0080 unsigned char vcs_type;
0081 unsigned char vcs_mode;
0082 unsigned char rsvd022;
0083 unsigned char rsvd023;
0084 unsigned char rsvd024;
0085 unsigned char rsvd025;
0086
0087 unsigned char qos_en;
0088 unsigned char bw_40MHz_en;
0089 unsigned char AMSDU2AMPDU_en;
0090
0091
0092 unsigned char AMPDU_en;
0093 unsigned char rate_control_offload;
0094 unsigned char aggregation_offload;
0095 unsigned char rsvd030;
0096 unsigned char rsvd031;
0097
0098 unsigned char beacon_offload;
0099 unsigned char MLME_offload;
0100 unsigned char hwpc_offload;
0101 unsigned char tcp_checksum_offload;
0102 unsigned char tcp_offload;
0103 unsigned char ps_control_offload;
0104 unsigned char WWLAN_offload;
0105 unsigned char rsvd040;
0106
0107 unsigned char tcp_tx_frame_len_L;
0108 unsigned char tcp_tx_frame_len_H;
0109 unsigned char tcp_rx_frame_len_L;
0110 unsigned char tcp_rx_frame_len_H;
0111 unsigned char rsvd050;
0112 unsigned char rsvd051;
0113 unsigned char rsvd052;
0114 unsigned char rsvd053;
0115 };
0116
0117 struct fw_hdr {
0118 unsigned short signature;
0119 unsigned short version;
0120
0121
0122 unsigned int dmem_size;
0123 unsigned int img_IMEM_size;
0124 unsigned int img_SRAM_size;
0125 unsigned int fw_priv_sz;
0126 unsigned short efuse_addr;
0127 unsigned short h2ccnd_resp_addr;
0128 unsigned int SVNRevision;
0129 unsigned int release_time;
0130 struct fw_priv fwpriv;
0131 };
0132
0133 struct hal_priv {
0134
0135 struct net_device *pipehdls_r8712[10];
0136 u8 (*hal_bus_init)(struct _adapter *adapter);
0137 };
0138
0139 uint rtl8712_hal_init(struct _adapter *padapter);
0140 int rtl871x_load_fw(struct _adapter *padapter);
0141
0142 #endif