162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* Copyright(c) 2009-2012  Realtek Corporation.*/
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef	__RTL_92S_DM_H__
562306a36Sopenharmony_ci#define __RTL_92S_DM_H__
662306a36Sopenharmony_ci
762306a36Sopenharmony_cienum dm_dig_alg {
862306a36Sopenharmony_ci	DIG_ALGO_BY_FALSE_ALARM = 0,
962306a36Sopenharmony_ci	DIG_ALGO_BY_RSSI	= 1,
1062306a36Sopenharmony_ci	DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM = 2,
1162306a36Sopenharmony_ci	DIG_ALGO_BY_TOW_PORT = 3,
1262306a36Sopenharmony_ci	DIG_ALGO_MAX
1362306a36Sopenharmony_ci};
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cienum dm_dig_two_port_alg {
1662306a36Sopenharmony_ci	DIG_TWO_PORT_ALGO_RSSI = 0,
1762306a36Sopenharmony_ci	DIG_TWO_PORT_ALGO_FALSE_ALARM = 1,
1862306a36Sopenharmony_ci};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cienum dm_dig_dbg {
2162306a36Sopenharmony_ci	DM_DBG_OFF = 0,
2262306a36Sopenharmony_ci	DM_DBG_ON = 1,
2362306a36Sopenharmony_ci	DM_DBG_MAX
2462306a36Sopenharmony_ci};
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cienum dm_dig_sta {
2762306a36Sopenharmony_ci	DM_STA_DIG_OFF = 0,
2862306a36Sopenharmony_ci	DM_STA_DIG_ON,
2962306a36Sopenharmony_ci	DM_STA_DIG_MAX
3062306a36Sopenharmony_ci};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cienum dm_ratr_sta {
3362306a36Sopenharmony_ci	DM_RATR_STA_HIGH = 0,
3462306a36Sopenharmony_ci	DM_RATR_STA_MIDDLEHIGH = 1,
3562306a36Sopenharmony_ci	DM_RATR_STA_MIDDLE = 2,
3662306a36Sopenharmony_ci	DM_RATR_STA_MIDDLELOW = 3,
3762306a36Sopenharmony_ci	DM_RATR_STA_LOW = 4,
3862306a36Sopenharmony_ci	DM_RATR_STA_ULTRALOW = 5,
3962306a36Sopenharmony_ci	DM_RATR_STA_MAX
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci#define DM_TYPE_BYFW			0
4362306a36Sopenharmony_ci#define DM_TYPE_BYDRIVER		1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#define	TX_HIGH_PWR_LEVEL_NORMAL	0
4662306a36Sopenharmony_ci#define	TX_HIGH_PWR_LEVEL_LEVEL1	1
4762306a36Sopenharmony_ci#define	TX_HIGH_PWR_LEVEL_LEVEL2	2
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#define	HAL_DM_DIG_DISABLE		BIT(0)	/* Disable Dig */
5062306a36Sopenharmony_ci#define	HAL_DM_HIPWR_DISABLE		BIT(1)	/* Disable High Power */
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci#define	TX_HIGHPWR_LEVEL_NORMAL		0
5362306a36Sopenharmony_ci#define	TX_HIGHPWR_LEVEL_NORMAL1	1
5462306a36Sopenharmony_ci#define	TX_HIGHPWR_LEVEL_NORMAL2	2
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci#define	TX_POWER_NEAR_FIELD_THRESH_LVL2	74
5762306a36Sopenharmony_ci#define	TX_POWER_NEAR_FIELD_THRESH_LVL1	67
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci#define	DM_DIG_HIGH_PWR_THRESH_HIGH	75
6062306a36Sopenharmony_ci#define	DM_DIG_HIGH_PWR_THRESH_LOW	70
6162306a36Sopenharmony_ci#define	DM_DIG_MIN_NETCORE		0x12
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_civoid rtl92s_dm_watchdog(struct ieee80211_hw *hw);
6462306a36Sopenharmony_civoid rtl92s_dm_init(struct ieee80211_hw *hw);
6562306a36Sopenharmony_civoid rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw);
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci#endif
68