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