xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/realtek/rtw88/regd.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*4882a593Smuzhiyun /* Copyright(c) 2018-2019  Realtek Corporation
3*4882a593Smuzhiyun  */
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #ifndef __RTW_REGD_H_
6*4882a593Smuzhiyun #define __RTW_REGD_H_
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR
9*4882a593Smuzhiyun #define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR
10*4882a593Smuzhiyun enum rtw_chplan_id {
11*4882a593Smuzhiyun 	RTW_CHPLAN_ETSI1_NULL = 0x21,
12*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI1 = 0x26,
13*4882a593Smuzhiyun 	RTW_CHPLAN_MKK1_MKK1 = 0x27,
14*4882a593Smuzhiyun 	RTW_CHPLAN_IC1_IC2 = 0x2B,
15*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_CHILE1 = 0x2D,
16*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_FCC3 = 0x30,
17*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_FCC5 = 0x32,
18*4882a593Smuzhiyun 	RTW_CHPLAN_FCC1_FCC7 = 0x34,
19*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI2 = 0x35,
20*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI3 = 0x36,
21*4882a593Smuzhiyun 	RTW_CHPLAN_ETSI1_ETSI12 = 0x3D,
22*4882a593Smuzhiyun 	RTW_CHPLAN_KCC1_KCC2 = 0x3E,
23*4882a593Smuzhiyun 	RTW_CHPLAN_ETSI1_ETSI4 = 0x42,
24*4882a593Smuzhiyun 	RTW_CHPLAN_FCC1_NCC3 = 0x44,
25*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ACMA1 = 0x45,
26*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI6 = 0x47,
27*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI7 = 0x48,
28*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI8 = 0x49,
29*4882a593Smuzhiyun 	RTW_CHPLAN_KCC1_KCC3 = 0x4B,
30*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI10 = 0x51,
31*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI14 = 0x59,
32*4882a593Smuzhiyun 	RTW_CHPLAN_FCC2_FCC7 = 0x61,
33*4882a593Smuzhiyun 	RTW_CHPLAN_FCC2_FCC1 = 0x62,
34*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI15 = 0x63,
35*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_FCC7 = 0x73,
36*4882a593Smuzhiyun 	RTW_CHPLAN_FCC2_FCC17 = 0x74,
37*4882a593Smuzhiyun 	RTW_CHPLAN_WORLD_ETSI20 = 0x75,
38*4882a593Smuzhiyun 	RTW_CHPLAN_FCC2_FCC11 = 0x76,
39*4882a593Smuzhiyun 	RTW_CHPLAN_REALTEK_DEFINE = 0x7f,
40*4882a593Smuzhiyun };
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun struct country_code_to_enum_rd {
43*4882a593Smuzhiyun 	u16 countrycode;
44*4882a593Smuzhiyun 	const char *iso_name;
45*4882a593Smuzhiyun };
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun enum country_code_type {
48*4882a593Smuzhiyun 	COUNTRY_CODE_FCC = 0,
49*4882a593Smuzhiyun 	COUNTRY_CODE_IC = 1,
50*4882a593Smuzhiyun 	COUNTRY_CODE_ETSI = 2,
51*4882a593Smuzhiyun 	COUNTRY_CODE_SPAIN = 3,
52*4882a593Smuzhiyun 	COUNTRY_CODE_FRANCE = 4,
53*4882a593Smuzhiyun 	COUNTRY_CODE_MKK = 5,
54*4882a593Smuzhiyun 	COUNTRY_CODE_MKK1 = 6,
55*4882a593Smuzhiyun 	COUNTRY_CODE_ISRAEL = 7,
56*4882a593Smuzhiyun 	COUNTRY_CODE_TELEC = 8,
57*4882a593Smuzhiyun 	COUNTRY_CODE_MIC = 9,
58*4882a593Smuzhiyun 	COUNTRY_CODE_GLOBAL_DOMAIN = 10,
59*4882a593Smuzhiyun 	COUNTRY_CODE_WORLD_WIDE_13 = 11,
60*4882a593Smuzhiyun 	COUNTRY_CODE_TELEC_NETGEAR = 12,
61*4882a593Smuzhiyun 	COUNTRY_CODE_WORLD_WIDE_13_5G_ALL = 13,
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun 	/* new channel plan above this */
64*4882a593Smuzhiyun 	COUNTRY_CODE_MAX
65*4882a593Smuzhiyun };
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun int rtw_regd_init(struct rtw_dev *rtwdev,
68*4882a593Smuzhiyun 		  void (*reg_notifier)(struct wiphy *wiphy,
69*4882a593Smuzhiyun 				       struct regulatory_request *request));
70*4882a593Smuzhiyun void rtw_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request);
71*4882a593Smuzhiyun #endif
72