1e3037485SYan-Hsuan Chuang /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2e3037485SYan-Hsuan Chuang /* Copyright(c) 2018-2019 Realtek Corporation 3e3037485SYan-Hsuan Chuang */ 4e3037485SYan-Hsuan Chuang 5e3037485SYan-Hsuan Chuang #ifndef __RTW_SEC_H_ 6e3037485SYan-Hsuan Chuang #define __RTW_SEC_H_ 7e3037485SYan-Hsuan Chuang 8e3037485SYan-Hsuan Chuang #define RTW_SEC_CMD_REG 0x670 9e3037485SYan-Hsuan Chuang #define RTW_SEC_WRITE_REG 0x674 10e3037485SYan-Hsuan Chuang #define RTW_SEC_READ_REG 0x678 11e3037485SYan-Hsuan Chuang #define RTW_SEC_CONFIG 0x680 12e3037485SYan-Hsuan Chuang 13e3037485SYan-Hsuan Chuang #define RTW_SEC_CAM_ENTRY_SHIFT 3 14e3037485SYan-Hsuan Chuang #define RTW_SEC_DEFAULT_KEY_NUM 4 15e3037485SYan-Hsuan Chuang #define RTW_SEC_CMD_WRITE_ENABLE BIT(16) 16e3037485SYan-Hsuan Chuang #define RTW_SEC_CMD_CLEAR BIT(30) 17e3037485SYan-Hsuan Chuang #define RTW_SEC_CMD_POLLING BIT(31) 18e3037485SYan-Hsuan Chuang 19e3037485SYan-Hsuan Chuang #define RTW_SEC_TX_UNI_USE_DK BIT(0) 20e3037485SYan-Hsuan Chuang #define RTW_SEC_RX_UNI_USE_DK BIT(1) 21e3037485SYan-Hsuan Chuang #define RTW_SEC_TX_DEC_EN BIT(2) 22e3037485SYan-Hsuan Chuang #define RTW_SEC_RX_DEC_EN BIT(3) 23e3037485SYan-Hsuan Chuang #define RTW_SEC_TX_BC_USE_DK BIT(6) 24e3037485SYan-Hsuan Chuang #define RTW_SEC_RX_BC_USE_DK BIT(7) 25e3037485SYan-Hsuan Chuang 26e3037485SYan-Hsuan Chuang #define RTW_SEC_ENGINE_EN BIT(9) 27e3037485SYan-Hsuan Chuang 28e3037485SYan-Hsuan Chuang int rtw_sec_get_free_cam(struct rtw_sec_desc *sec); 29e3037485SYan-Hsuan Chuang void rtw_sec_write_cam(struct rtw_dev *rtwdev, 30e3037485SYan-Hsuan Chuang struct rtw_sec_desc *sec, 31e3037485SYan-Hsuan Chuang struct ieee80211_sta *sta, 32e3037485SYan-Hsuan Chuang struct ieee80211_key_conf *key, 33e3037485SYan-Hsuan Chuang u8 hw_key_type, u8 hw_key_idx); 34e3037485SYan-Hsuan Chuang void rtw_sec_clear_cam(struct rtw_dev *rtwdev, 35e3037485SYan-Hsuan Chuang struct rtw_sec_desc *sec, 36e3037485SYan-Hsuan Chuang u8 hw_key_idx); 37*04b786e0SYan-Hsuan Chuang u8 rtw_sec_cam_pg_backup(struct rtw_dev *rtwdev, u8 *used_cam); 38e3037485SYan-Hsuan Chuang void rtw_sec_enable_sec_engine(struct rtw_dev *rtwdev); 39e3037485SYan-Hsuan Chuang 40e3037485SYan-Hsuan Chuang #endif 41