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