xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/ti/wl1251/init.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * This file is part of wl1251
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2009 Nokia Corporation
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef __WL1251_INIT_H__
9*4882a593Smuzhiyun #define __WL1251_INIT_H__
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include "wl1251.h"
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun enum {
14*4882a593Smuzhiyun 	/* best effort/legacy */
15*4882a593Smuzhiyun 	AC_BE = 0,
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun 	/* background */
18*4882a593Smuzhiyun 	AC_BK = 1,
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun 	/* video */
21*4882a593Smuzhiyun 	AC_VI = 2,
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun 	/* voice */
24*4882a593Smuzhiyun 	AC_VO = 3,
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun 	/* broadcast dummy access category */
27*4882a593Smuzhiyun 	AC_BCAST = 4,
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun 	NUM_ACCESS_CATEGORIES = 4
30*4882a593Smuzhiyun };
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun /* following are defult values for the IE fields*/
33*4882a593Smuzhiyun #define CWMIN_BK  15
34*4882a593Smuzhiyun #define CWMIN_BE  15
35*4882a593Smuzhiyun #define CWMIN_VI  7
36*4882a593Smuzhiyun #define CWMIN_VO  3
37*4882a593Smuzhiyun #define CWMAX_BK  1023
38*4882a593Smuzhiyun #define CWMAX_BE  63
39*4882a593Smuzhiyun #define CWMAX_VI  15
40*4882a593Smuzhiyun #define CWMAX_VO  7
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun /* slot number setting to start transmission at PIFS interval */
43*4882a593Smuzhiyun #define AIFS_PIFS 1
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun /*
46*4882a593Smuzhiyun  * slot number setting to start transmission at DIFS interval - normal DCF
47*4882a593Smuzhiyun  * access
48*4882a593Smuzhiyun  */
49*4882a593Smuzhiyun #define AIFS_DIFS 2
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun #define AIFSN_BK  7
52*4882a593Smuzhiyun #define AIFSN_BE  3
53*4882a593Smuzhiyun #define AIFSN_VI  AIFS_PIFS
54*4882a593Smuzhiyun #define AIFSN_VO  AIFS_PIFS
55*4882a593Smuzhiyun #define TXOP_BK   0
56*4882a593Smuzhiyun #define TXOP_BE   0
57*4882a593Smuzhiyun #define TXOP_VI   3008
58*4882a593Smuzhiyun #define TXOP_VO   1504
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun int wl1251_hw_init_hwenc_config(struct wl1251 *wl);
61*4882a593Smuzhiyun int wl1251_hw_init_templates_config(struct wl1251 *wl);
62*4882a593Smuzhiyun int wl1251_hw_init_rx_config(struct wl1251 *wl, u32 config, u32 filter);
63*4882a593Smuzhiyun int wl1251_hw_init_phy_config(struct wl1251 *wl);
64*4882a593Smuzhiyun int wl1251_hw_init_beacon_filter(struct wl1251 *wl);
65*4882a593Smuzhiyun int wl1251_hw_init_pta(struct wl1251 *wl);
66*4882a593Smuzhiyun int wl1251_hw_init_energy_detection(struct wl1251 *wl);
67*4882a593Smuzhiyun int wl1251_hw_init_beacon_broadcast(struct wl1251 *wl);
68*4882a593Smuzhiyun int wl1251_hw_init_power_auth(struct wl1251 *wl);
69*4882a593Smuzhiyun int wl1251_hw_init_mem_config(struct wl1251 *wl);
70*4882a593Smuzhiyun int wl1251_hw_init(struct wl1251 *wl);
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun #endif
73