linux/drivers/staging/rtl8188eu/include/rtw_efuse.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/******************************************************************************
   3 *
   4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
   5 *
   6 ******************************************************************************/
   7#ifndef __RTW_EFUSE_H__
   8#define __RTW_EFUSE_H__
   9
  10#include <osdep_service.h>
  11
  12#define EFUSE_ERROE_HANDLE              1
  13
  14#define PG_STATE_HEADER                 0x01
  15#define PG_STATE_WORD_0         0x02
  16#define PG_STATE_WORD_1         0x04
  17#define PG_STATE_WORD_2         0x08
  18#define PG_STATE_WORD_3         0x10
  19#define PG_STATE_DATA                   0x20
  20
  21#define PG_SWBYTE_H                     0x01
  22#define PG_SWBYTE_L                     0x02
  23
  24#define PGPKT_DATA_SIZE         8
  25
  26/* E-Fuse */
  27#define EFUSE_MAP_SIZE      512
  28#define EFUSE_MAX_SIZE      256
  29/* end of E-Fuse */
  30
  31#define         EFUSE_MAX_MAP_LEN               512
  32#define         EFUSE_MAX_HW_SIZE               512
  33#define         EFUSE_MAX_SECTION_BASE  16
  34
  35#define EXT_HEADER(header) ((header & 0x1F) == 0x0F)
  36#define ALL_WORDS_DISABLED(wde) ((wde & 0x0F) == 0x0F)
  37#define GET_HDR_OFFSET_2_0(header) ((header & 0xE0) >> 5)
  38
  39#define         EFUSE_REPEAT_THRESHOLD_                 3
  40
  41/*      The following is for BT Efuse definition */
  42#define         EFUSE_BT_MAX_MAP_LEN            1024
  43#define         EFUSE_MAX_BANK                  4
  44#define         EFUSE_MAX_BT_BANK               (EFUSE_MAX_BANK - 1)
  45/*--------------------------Define Parameters-------------------------------*/
  46#define         EFUSE_MAX_WORD_UNIT                     4
  47
  48/*------------------------------Define structure----------------------------*/
  49struct pgpkt {
  50        u8 offset;
  51        u8 word_en;
  52        u8 data[8];
  53        u8 word_cnts;
  54};
  55
  56u8 Efuse_CalculateWordCnts(u8 word_en);
  57u8 efuse_OneByteRead(struct adapter *adapter, u16 addr, u8 *data);
  58u8 efuse_OneByteWrite(struct adapter *adapter, u16 addr, u8 data);
  59
  60int Efuse_PgPacketRead(struct adapter *adapt, u8 offset, u8 *data);
  61bool Efuse_PgPacketWrite(struct adapter *adapter, u8 offset, u8 word, u8 *data);
  62void efuse_WordEnableDataRead(u8 word_en, u8 *sourdata, u8 *targetdata);
  63u8 Efuse_WordEnableDataWrite(struct adapter *adapter, u16 efuse_addr,
  64                             u8 word_en, u8 *data);
  65
  66void EFUSE_ShadowMapUpdate(struct adapter *adapter);
  67#endif
  68