1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 4 * All rights reserved. 5 * 6 * File: baseband.h 7 * 8 * Purpose: Implement functions to access baseband 9 * 10 * Author: Jerry Chen 11 * 12 * Date: Jun. 5, 2002 13 * 14 * Revision History: 15 * 06-10-2003 Bryan YC Fan: Re-write codes to support VT3253 spec. 16 * 08-26-2003 Kyle Hsu : Add defines of packet type and TX rate. 17 */ 18 19 #ifndef __BASEBAND_H__ 20 #define __BASEBAND_H__ 21 22 #include "device.h" 23 24 #define PREAMBLE_LONG 0 25 #define PREAMBLE_SHORT 1 26 27 /* 28 * Registers in the BASEBAND 29 */ 30 #define BB_MAX_CONTEXT_SIZE 256 31 32 #define C_SIFS_A 16 /* usec */ 33 #define C_SIFS_BG 10 34 35 #define C_EIFS 80 /* usec */ 36 37 #define C_SLOT_SHORT 9 /* usec */ 38 #define C_SLOT_LONG 20 39 40 #define C_CWMIN_A 15 /* slot time */ 41 #define C_CWMIN_B 31 42 43 #define C_CWMAX 1023 /* slot time */ 44 45 /* 0:11A 1:11B 2:11G */ 46 #define BB_TYPE_11A 0 47 #define BB_TYPE_11B 1 48 #define BB_TYPE_11G 2 49 50 /* 0:11a, 1:11b, 2:11gb (only CCK in BasicRate), 3:11ga (OFDM in BasicRate) */ 51 #define PK_TYPE_11A 0 52 #define PK_TYPE_11B 1 53 #define PK_TYPE_11GB 2 54 #define PK_TYPE_11GA 3 55 56 #define TOP_RATE_54M 0x80000000 57 #define TOP_RATE_48M 0x40000000 58 #define TOP_RATE_36M 0x20000000 59 #define TOP_RATE_24M 0x10000000 60 #define TOP_RATE_18M 0x08000000 61 #define TOP_RATE_12M 0x04000000 62 #define TOP_RATE_11M 0x02000000 63 #define TOP_RATE_9M 0x01000000 64 #define TOP_RATE_6M 0x00800000 65 #define TOP_RATE_55M 0x00400000 66 #define TOP_RATE_2M 0x00200000 67 #define TOP_RATE_1M 0x00100000 68 69 /* Length, Service, and Signal fields of Phy for Tx */ 70 struct vnt_phy_field { 71 u8 signal; 72 u8 service; 73 __le16 len; 74 } __packed; 75 76 unsigned int vnt_get_frame_time(u8 preamble_type, u8 pkt_type, 77 unsigned int frame_length, u16 tx_rate); 78 79 void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length, 80 u16 tx_rate, u8 pkt_type, struct vnt_phy_field *phy); 81 82 void vnt_set_short_slot_time(struct vnt_private *priv); 83 void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data); 84 void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode); 85 int vnt_vt3184_init(struct vnt_private *priv); 86 void vnt_set_deep_sleep(struct vnt_private *priv); 87 void vnt_exit_deep_sleep(struct vnt_private *priv); 88 void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning); 89 90 #endif /* __BASEBAND_H__ */ 91