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