Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __RTL8712_EFUSE_H__
0003 #define __RTL8712_EFUSE_H__
0004 
0005 #include "osdep_service.h"
0006 
0007 #define _REPEAT_THRESHOLD_  3
0008 
0009 #define EFUSE_MAX_SIZE      512
0010 #define EFUSE_MAP_MAX_SIZE  128
0011 
0012 #define PGPKG_MAX_WORDS 4
0013 #define PGPKT_DATA_SIZE 8 /* PGPKG_MAX_WORDS*2; BYTES sizeof(u8)*8*/
0014 #define MAX_PGPKT_SIZE  9 /* 1 + PGPKT_DATA_SIZE; header + 2 * 4 words (BYTES)*/
0015 
0016 #define GET_EFUSE_OFFSET(header)    ((header & 0xF0) >> 4)
0017 #define GET_EFUSE_WORD_EN(header)   (header & 0x0F)
0018 #define MAKE_EFUSE_HEADER(offset, word_en)  ((((offset) & 0x0F) << 4) | \
0019                         ((word_en) & 0x0F))
0020 /*--------------------------------------------------------------------------*/
0021 struct PGPKT_STRUCT {
0022     u8 offset;
0023     u8 word_en;
0024     u8 data[PGPKT_DATA_SIZE];
0025 };
0026 /*--------------------------------------------------------------------------*/
0027 u8 r8712_efuse_reg_init(struct _adapter *padapter);
0028 void r8712_efuse_reg_uninit(struct _adapter *padapter);
0029 u16 r8712_efuse_get_current_size(struct _adapter *padapter);
0030 int r8712_efuse_get_max_size(struct _adapter *padapter);
0031 void r8712_efuse_change_max_size(struct _adapter *padapter);
0032 u8 r8712_efuse_pg_packet_read(struct _adapter *padapter,
0033                   u8 offset, u8 *data);
0034 u8 r8712_efuse_pg_packet_write(struct _adapter *padapter,
0035                    const u8 offset, const u8 word_en,
0036                    const u8 *data);
0037 u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead,
0038               u16 start_addr, u16 cnts, u8 *data);
0039 u8 r8712_efuse_map_read(struct _adapter *padapter, u16 addr,
0040             u16 cnts, u8 *data);
0041 u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr,
0042              u16 cnts, u8 *data);
0043 #endif