/******************************************************************************
|
*
|
* Copyright(c) 2020 Realtek Corporation.
|
*
|
* This program is free software; you can redistribute it and/or modify it
|
* under the terms of version 2 of the GNU General Public License as
|
* published by the Free Software Foundation.
|
*
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
* more details.
|
*
|
*****************************************************************************/
|
#ifndef _PHL_REGULATION_H_
|
#define _PHL_REGULATION_H_
|
|
#define MAX_CH_NUM_GROUP 24
|
|
enum rtw_regulation_freq_group {
|
FREQ_GROUP_2GHZ = 0x0,
|
FREQ_GROUP_5GHZ_BAND1,
|
FREQ_GROUP_5GHZ_BAND2,
|
FREQ_GROUP_5GHZ_BAND3,
|
FREQ_GROUP_5GHZ_BAND4,
|
FREQ_GROUP_6GHZ_UNII5,
|
FREQ_GROUP_6GHZ_UNII6,
|
FREQ_GROUP_6GHZ_UNII7,
|
FREQ_GROUP_6GHZ_UNII8,
|
FREQ_GROUP_MAX
|
};
|
|
enum rtw_regulation_status {
|
REGULATION_SUCCESS = 0x0,
|
REGULATION_FAILURE,
|
REGULATION_DOMAIN_MISMATCH,
|
REGULATION_INVALID_2GHZ_RD,
|
REGULATION_INVALID_5GHZ_RD,
|
REGULATION_INVALID_DOMAIN
|
};
|
|
struct rtw_regulation_chplan_group {
|
u32 cnt;
|
struct rtw_regulation_channel ch[MAX_CH_NUM_GROUP];
|
};
|
|
struct rtw_domain {
|
u8 code;
|
u8 reason;
|
};
|
|
bool rtw_phl_set_regulation_info(void* phl,
|
struct rtw_regulation_info *regu_info);
|
|
bool rtw_phl_regu_interface_init(void *phl);
|
|
bool rtw_phl_regu_interface_deinit(void *phl);
|
|
enum rtw_regulation_freq_group
|
rtw_phl_get_regu_freq_group(enum band_type band, u8 ch);
|
|
u8 rtw_phl_get_regu_country_ver_ex(
|
void *phl, u8 tbl_idx);
|
|
u8 rtw_phl_get_regu_chplan_ver_ex(
|
void *phl, u8 tbl_idx);
|
|
void rtw_phl_get_6g_regulatory_info(void *phl,
|
u8 domain, u8 *dm_code, u8 *regulation, u8 *ch_idx,
|
u8 tbl_idx);
|
|
void rtw_phl_get_chdef_6g(void *phl,
|
u8 ch_idx, struct chdef_6ghz *chdef, u8 tbl_idx);
|
|
u8 rtw_phl_get_cat6g_by_country_ex(void *phl,
|
char *country, u8 tbl_idx);
|
|
/* legacy api, will be removed */
|
u8 rtw_phl_get_cat6g_by_country(char *cntry);
|
u8 rtw_phl_get_regu_country_ver(void);
|
u8 rtw_phl_get_regu_chplan_ver(void);
|
|
#endif /* _PHL_REGULATION_H_ */
|