18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * This file is part of wl1251
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2009 Nokia Corporation
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#ifndef __WL1251_INIT_H__
98c2ecf20Sopenharmony_ci#define __WL1251_INIT_H__
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include "wl1251.h"
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cienum {
148c2ecf20Sopenharmony_ci	/* best effort/legacy */
158c2ecf20Sopenharmony_ci	AC_BE = 0,
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	/* background */
188c2ecf20Sopenharmony_ci	AC_BK = 1,
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	/* video */
218c2ecf20Sopenharmony_ci	AC_VI = 2,
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	/* voice */
248c2ecf20Sopenharmony_ci	AC_VO = 3,
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	/* broadcast dummy access category */
278c2ecf20Sopenharmony_ci	AC_BCAST = 4,
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	NUM_ACCESS_CATEGORIES = 4
308c2ecf20Sopenharmony_ci};
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci/* following are defult values for the IE fields*/
338c2ecf20Sopenharmony_ci#define CWMIN_BK  15
348c2ecf20Sopenharmony_ci#define CWMIN_BE  15
358c2ecf20Sopenharmony_ci#define CWMIN_VI  7
368c2ecf20Sopenharmony_ci#define CWMIN_VO  3
378c2ecf20Sopenharmony_ci#define CWMAX_BK  1023
388c2ecf20Sopenharmony_ci#define CWMAX_BE  63
398c2ecf20Sopenharmony_ci#define CWMAX_VI  15
408c2ecf20Sopenharmony_ci#define CWMAX_VO  7
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci/* slot number setting to start transmission at PIFS interval */
438c2ecf20Sopenharmony_ci#define AIFS_PIFS 1
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci/*
468c2ecf20Sopenharmony_ci * slot number setting to start transmission at DIFS interval - normal DCF
478c2ecf20Sopenharmony_ci * access
488c2ecf20Sopenharmony_ci */
498c2ecf20Sopenharmony_ci#define AIFS_DIFS 2
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#define AIFSN_BK  7
528c2ecf20Sopenharmony_ci#define AIFSN_BE  3
538c2ecf20Sopenharmony_ci#define AIFSN_VI  AIFS_PIFS
548c2ecf20Sopenharmony_ci#define AIFSN_VO  AIFS_PIFS
558c2ecf20Sopenharmony_ci#define TXOP_BK   0
568c2ecf20Sopenharmony_ci#define TXOP_BE   0
578c2ecf20Sopenharmony_ci#define TXOP_VI   3008
588c2ecf20Sopenharmony_ci#define TXOP_VO   1504
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciint wl1251_hw_init_hwenc_config(struct wl1251 *wl);
618c2ecf20Sopenharmony_ciint wl1251_hw_init_templates_config(struct wl1251 *wl);
628c2ecf20Sopenharmony_ciint wl1251_hw_init_rx_config(struct wl1251 *wl, u32 config, u32 filter);
638c2ecf20Sopenharmony_ciint wl1251_hw_init_phy_config(struct wl1251 *wl);
648c2ecf20Sopenharmony_ciint wl1251_hw_init_beacon_filter(struct wl1251 *wl);
658c2ecf20Sopenharmony_ciint wl1251_hw_init_pta(struct wl1251 *wl);
668c2ecf20Sopenharmony_ciint wl1251_hw_init_energy_detection(struct wl1251 *wl);
678c2ecf20Sopenharmony_ciint wl1251_hw_init_beacon_broadcast(struct wl1251 *wl);
688c2ecf20Sopenharmony_ciint wl1251_hw_init_power_auth(struct wl1251 *wl);
698c2ecf20Sopenharmony_ciint wl1251_hw_init_mem_config(struct wl1251 *wl);
708c2ecf20Sopenharmony_ciint wl1251_hw_init(struct wl1251 *wl);
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci#endif
73