1*551b7c5eSAhmad Khalifa /* 2*551b7c5eSAhmad Khalifa * Copyright (c) 2026 Ahmad Khalifa <vexeduxr@FreeBSD.org> 3*551b7c5eSAhmad Khalifa * 4*551b7c5eSAhmad Khalifa * SPDX-License-Identifier: BSD-2-Clause 5*551b7c5eSAhmad Khalifa */ 6*551b7c5eSAhmad Khalifa 7*551b7c5eSAhmad Khalifa #ifndef R23B_FW_CMD_H 8*551b7c5eSAhmad Khalifa #define R23B_FW_CMD_H 9*551b7c5eSAhmad Khalifa 10*551b7c5eSAhmad Khalifa /* 11*551b7c5eSAhmad Khalifa * Host to firmware commands. 12*551b7c5eSAhmad Khalifa */ 13*551b7c5eSAhmad Khalifa #define R23B_CMD_RSSI_SETTING 0x42 14*551b7c5eSAhmad Khalifa #define R23B_CMD_PS_TDMA 0x60 15*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_INFO 0x61 16*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_WLANACT 0x63 17*551b7c5eSAhmad Khalifa #define R23B_CMD_ANT_INV 0x65 18*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_MP_OPER 0x67 19*551b7c5eSAhmad Khalifa #define R23B_CMD_WLAN_CALIB 0x6d 20*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_GRANT 0x6e 21*551b7c5eSAhmad Khalifa 22*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_WLANACT_IGNORE ((uint8_t[]){ 0 }) 23*551b7c5eSAhmad Khalifa 24*551b7c5eSAhmad Khalifa #define R23B_CMD_WLAN_CALIB_BEGIN ((uint8_t[]){ 1 }) 25*551b7c5eSAhmad Khalifa #define R23B_CMD_WLAN_CALIB_END ((uint8_t[]){ 0 }) 26*551b7c5eSAhmad Khalifa 27*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_GRANT_LOW ((uint8_t[]){ 0 }) 28*551b7c5eSAhmad Khalifa #define R23B_CMD_BT_GRANT_HIGH ((uint8_t[]){ 1 }) 29*551b7c5eSAhmad Khalifa 30*551b7c5eSAhmad Khalifa /* Structure for R23B_CMD_RSSI_SETTING. */ 31*551b7c5eSAhmad Khalifa struct r23b_fw_cmd_rssi { 32*551b7c5eSAhmad Khalifa uint8_t macid; 33*551b7c5eSAhmad Khalifa uint8_t reserved; 34*551b7c5eSAhmad Khalifa uint8_t pwdb; 35*551b7c5eSAhmad Khalifa uint8_t uldl; 36*551b7c5eSAhmad Khalifa } __packed; 37*551b7c5eSAhmad Khalifa 38*551b7c5eSAhmad Khalifa /* Structure for R23B_CMD_BT_MP_OPER. */ 39*551b7c5eSAhmad Khalifa struct r23b_fw_cmd_btoper { 40*551b7c5eSAhmad Khalifa uint8_t req_num; 41*551b7c5eSAhmad Khalifa uint8_t opcode; 42*551b7c5eSAhmad Khalifa #define R23B_BT_MP_OPER_WRITE_VAL 0xd 43*551b7c5eSAhmad Khalifa #define R23B_BT_MP_OPER_WRITE_ADDR 0xc 44*551b7c5eSAhmad Khalifa 45*551b7c5eSAhmad Khalifa uint8_t value; 46*551b7c5eSAhmad Khalifa uint8_t addr; 47*551b7c5eSAhmad Khalifa } __packed; 48*551b7c5eSAhmad Khalifa 49*551b7c5eSAhmad Khalifa /* Structure for R23B_CMD_ANT_INV. */ 50*551b7c5eSAhmad Khalifa struct r23b_fw_cmd_antinv { 51*551b7c5eSAhmad Khalifa uint8_t invert; 52*551b7c5eSAhmad Khalifa uint8_t internal_switch; 53*551b7c5eSAhmad Khalifa } __packed; 54*551b7c5eSAhmad Khalifa 55*551b7c5eSAhmad Khalifa #endif 56