1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#ifndef __WL18XX_PRIV_H__
23#define __WL18XX_PRIV_H__
24
25#include "conf.h"
26
27
28#define WL18XX_CHIP_VER 8
29#define WL18XX_IFTYPE_VER 2
30#define WL18XX_MAJOR_VER 0
31#define WL18XX_SUBTYPE_VER 0
32#define WL18XX_MINOR_VER 100
33
34#define WL18XX_CMD_MAX_SIZE 740
35
36#define WL18XX_AGGR_BUFFER_SIZE (13 * PAGE_SIZE)
37
38#define WL18XX_NUM_TX_DESCRIPTORS 32
39#define WL18XX_NUM_RX_DESCRIPTORS 32
40
41#define WL18XX_NUM_MAC_ADDRESSES 3
42
43struct wl18xx_priv {
44
45 u8 cmd_buf[WL18XX_CMD_MAX_SIZE];
46
47 struct wl18xx_priv_conf conf;
48
49
50 u8 last_fw_rls_idx;
51
52
53 int extra_spare_vif_count;
54};
55
56#define WL18XX_FW_MAX_TX_STATUS_DESC 33
57
58struct wl18xx_fw_status_priv {
59
60
61
62
63 u8 fw_release_idx;
64
65
66
67
68
69 u8 released_tx_desc[WL18XX_FW_MAX_TX_STATUS_DESC];
70
71 u8 padding[2];
72};
73
74#define WL18XX_PHY_VERSION_MAX_LEN 20
75
76struct wl18xx_static_data_priv {
77 char phy_version[WL18XX_PHY_VERSION_MAX_LEN];
78};
79
80struct wl18xx_clk_cfg {
81 u32 n;
82 u32 m;
83 u32 p;
84 u32 q;
85 bool swallow;
86};
87
88enum {
89 CLOCK_CONFIG_16_2_M = 1,
90 CLOCK_CONFIG_16_368_M,
91 CLOCK_CONFIG_16_8_M,
92 CLOCK_CONFIG_19_2_M,
93 CLOCK_CONFIG_26_M,
94 CLOCK_CONFIG_32_736_M,
95 CLOCK_CONFIG_33_6_M,
96 CLOCK_CONFIG_38_468_M,
97 CLOCK_CONFIG_52_M,
98
99 NUM_CLOCK_CONFIGS,
100};
101
102#endif
103