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
13enum {
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
60int wl1251_hw_init_hwenc_config(struct wl1251 *wl);
61int wl1251_hw_init_templates_config(struct wl1251 *wl);
62int wl1251_hw_init_rx_config(struct wl1251 *wl, u32 config, u32 filter);
63int wl1251_hw_init_phy_config(struct wl1251 *wl);
64int wl1251_hw_init_beacon_filter(struct wl1251 *wl);
65int wl1251_hw_init_pta(struct wl1251 *wl);
66int wl1251_hw_init_energy_detection(struct wl1251 *wl);
67int wl1251_hw_init_beacon_broadcast(struct wl1251 *wl);
68int wl1251_hw_init_power_auth(struct wl1251 *wl);
69int wl1251_hw_init_mem_config(struct wl1251 *wl);
70int wl1251_hw_init(struct wl1251 *wl);
71
72#endif
73