Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
/******************************************************************************
 *
 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
 *                                        
 * 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.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
 *
 *
 ******************************************************************************/

/******************************************************************************
     
 History:
	Data		Who		Remark (Internal History)
	
	05/14/2012	MH		Collect RTK inernal infromation and generate channel plan draft.
	
******************************************************************************/

//============================================================
// include files
//============================================================
#include "mp_precomp.h"
#include "rtchnlplan.h"



//
//	Channel Plan Domain Code
//

/*
	Channel Plan Contents					
	Domain Code		EEPROM	Countries in Specific Domain		
			2G RD		5G RD		Bit[6:0]	2G	5G	
	Case	Old Define				00h~1Fh	Old Define	Old Define	
	1		2G_WORLD	5G_NULL		20h		Worldwird 13	NA	
	2		2G_ETSI1	5G_NULL		21h		Europe 2G		NA	
	3		2G_FCC1		5G_NULL		22h		US 2G			NA	
	4		2G_MKK1		5G_NULL		23h		Japan 2G		NA	
	5		2G_ETSI2	5G_NULL		24h		France 2G		NA	
	6		2G_FCC1		5G_FCC1		25h		US 2G			US 5G					八大國認證
	7		2G_WORLD	5G_ETSI1	26h		Worldwird 13	Europe					八大國認證
	8		2G_MKK1		5G_MKK1		27h		Japan 2G		Japan 5G				八大國認證
	9		2G_WORLD	5G_KCC1		28h		Worldwird 13	Korea					八大國認證
	10		2G_WORLD	5G_FCC2		29h		Worldwird 13	US o/w DFS Channels		
	11		2G_WORLD	5G_FCC3		30h		Worldwird 13	India, Mexico	    	
	12		2G_WORLD	5G_FCC4		31h		Worldwird 13	Venezuela	        	
	13		2G_WORLD	5G_FCC5		32h		Worldwird 13	China	            	
	14		2G_WORLD	5G_FCC6		33h		Worldwird 13	Israel	            	
	15		2G_FCC1		5G_FCC7		34h		US 2G			US/Canada				八大國認證
	16		2G_WORLD	5G_ETSI2	35h		Worldwird 13	Australia, New Zealand	八大國認證
	17		2G_WORLD	5G_ETSI3	36h		Worldwird 13	Russia	
	18		2G_MKK1		5G_MKK2		37h		Japan 2G		Japan (W52, W53)	
	19		2G_MKK1		5G_MKK3		38h		Japan 2G		Japan (W56)	
	20		2G_FCC1		5G_NCC1		39h		US 2G			Taiwan					八大國認證
						
	NA		2G_WORLD	5G_FCC1		7F		FCC	FCC DFS Channels	Realtek Define
						
						
						
						
						
	2.4G 	Regulatory 	Domains					
	Case	2G RD		Regulation	Channels	Frequencyes		Note					Countries in Specific Domain
	1		2G_WORLD	ETSI		1~13		2412~2472		Passive scan CH 12, 13	Worldwird 13
	2		2G_ETSI1	ETSI		1~13		2412~2472								Europe
	3		2G_FCC1		FCC			1~11		2412~2462								US
	4		2G_MKK1		MKK			1~13, 14	2412~2472, 2484							Japan
	5		2G_ETSI2	ETSI		10~13		2457~2472								France
						
						
						
						
	5G Regulatory Domains					
	Case	5G RD		Regulation	Channels			Frequencyes					Note											Countries in Specific Domain
	1		5G_NULL		NA			NA					NA							Do not support 5GHz	
	2		5G_ETSI1	ETSI		"36~48, 52~64,  	
									100~140"			"5180~5240, 5260~5230
														5500~5700"					Band1, Ban2, Band3								Europe
	3		5G_ETSI2	ETSI		"36~48, 52~64, 
									100~140, 149~165"	"5180~5240, 5260~5230
														5500~5700, 5745~5825"		Band1, Ban2, Band3, Band4						Australia, New Zealand
	4		5G_ETSI3	ETSI		"36~48, 52~64, 
														100~132, 149~165"	
														"5180~5240, 5260~5230
														5500~5660, 5745~5825"		Band1, Ban2, Band3(except CH 136, 140), Band4"	Russia
	5		5G_FCC1		FCC			"36~48, 52~64, 
									100~140, 149~165"	
														"5180~5240, 5260~5230
														5500~5700, 5745~5825"		Band1(5150~5250MHz), 
																					Band2(5250~5350MHz),
																					Band3(5470~5725MHz),
																					Band4(5725~5850MHz)"							US
	6		5G_FCC2		FCC			36~48, 149~165		5180~5240, 5745~5825		Band1, Band4	FCC o/w DFS Channels
	7		5G_FCC3		FCC			"36~48, 52~64, 
									149~165"			"5180~5240, 5260~5230
														5745~5825"					Band1, Ban2, Band4								India, Mexico
	8		5G_FCC4		FCC			"36~48, 52~64, 
									149~161"			"5180~5240, 5260~5230
														5745~5805"					Band1, Ban2,
																					Band4(except CH 165)"							Venezuela
	9		5G_FCC5		FCC			149~165				5745~5825					Band4											China
	10		5G_FCC6		FCC			36~48, 52~64		5180~5240, 5260~5230		Band1, Band2									Israel
	11		5G_FCC7
			5G_IC1		FCC
						IC"			"36~48, 52~64, 
									100~116, 136, 140, 
									149~165"			"5180~5240, 5260~5230
														5500~5580, 5680, 5700, 
														5745~5825"					"Band1, Band2, 
																					Band3(except 5600~5650MHz),
																					Band4"											"US
																																	Canada"
	12		5G_KCC1		KCC			"36~48, 52~64, 
									100~124, 149~165"	"5180~5240, 5260~5230
														5500~5620, 5745~5825"		"Band1, Ban2, 
																					Band3(5470~5650MHz),
																					Band4"											Korea
	13		5G_MKK1		MKK			"36~48, 52~64, 
									100~140"			"5180~5240, 5260~5230
														5500~5700"					W52, W53, W56									Japan
	14		5G_MKK2		MKK			36~48, 52~64		5180~5240, 5260~5230		W52, W53										Japan (W52, W53)
	15		5G_MKK3		MKK			100~140				5500~5700					W56	Japan (W56)
	16		5G_NCC1		NCC			"56~64,
									100~116, 136, 140,
									149~165"			"5260~5320
														5500~5580, 5680, 5700, 
														5745~5825"					"Band2(except CH 52), 
																					Band3(except 5600~5650MHz),
																					Band4"											Taiwan
						
						
*/						
						
//
// 2.4G CHannel 
//						
/*

	2.4G Band		Regulatory Domains																RTL8192D	
	Channel Number	Channel Frequency	US		Canada	Europe	Spain	France	Japan	Japan		20M		40M
					(MHz)				(FCC)	(IC)	(ETSI)							(MPHPT)				
	1				2412				v		v		v								v			v		
	2				2417				v		v		v								v			v		
	3				2422				v		v		v								v			v		v
	4				2427				v		v		v								v			v		v
	5				2432				v		v		v								v			v		v
	6				2437				v		v		v								v			v		v
	7				2442				v		v		v								v			v		v
	8				2447				v		v		v								v			v		v
	9				2452				v		v		v								v			v		v
	10				2457				v		v		v		v		v				v			v		v
	11				2462				v		v		v		v		v				v			v		v
	12				2467								v				v				v			v		v
	13				2472								v				v				v			v	
	14				2484														v					v	


*/


//
// 5G Operating Channel
//
/*

	5G Band		RTL8192D	RTL8195 (Jaguar)				Jaguar 2	Regulatory Domains											
	Channel Number	Channel Frequency	Global	Global				Global	"US
(FCC 15.407)"	"Canada
(FCC, except 5.6~5.65GHz)"	Argentina, Australia, New Zealand, Brazil, S. Africa (FCC/ETSI)	"Europe
(CE 301 893)"	China	India, Mexico, Singapore	Israel, Turkey	"Japan
(MIC Item 19-3, 19-3-2)"	Korea	Russia, Ukraine	"Taiwan
(NCC)"	Venezuela
		(MHz)	(20MHz)	(20MHz)	(40MHz)	(80MHz)	(160MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)	(20MHz)
"Band 1
5.15GHz
~
5.25GHz"	36	5180	v	v	v	v		v	Indoor	Indoor	v	Indoor		v	Indoor	Indoor	v	v		v
	40	5200	v	v				v	Indoor	Indoor	v	Indoor		v	Indoor	Indoor	v	v		v
	44	5220	v	v	v			v	Indoor	Indoor	v	Indoor		v	Indoor	Indoor	v	v		v
	48	5240	v	v				v	Indoor	Indoor	v	Indoor		v	Indoor	Indoor	v	v		v
"Band 2
5.25GHz
~
5.35GHz
(DFS)"	52	5260	v	v	v	v		v	v	v	v	Indoor		v	Indoor	Indoor	v	v		v
	56	5280	v	v				v	v	v	v	Indoor		v	Indoor	Indoor	v	v	Indoor	v
	60	5300	v	v	v			v	v	v	v	Indoor		v	Indoor	Indoor	v	v	Indoor	v
	64	5320	v	v				v	v	v	v	Indoor		v	Indoor	Indoor	v	v	Indoor	v
																				
"Band 3
5.47GHz
~
5.725GHz
(DFS)"	100	5500	v	v	v	v		v	v	v	v	v				v	v	v	v	
	104	5520	v	v				v	v	v	v	v				v	v	v	v	
	108	5540	v	v	v			v	v	v	v	v				v	v	v	v	
	112	5560	v	v				v	v	v	v	v				v	v	v	v	
	116	5580	v	v	v	v		v	v	v	v	v				v	v	v	v	
	120	5600	v	v				v	Indoor		v	Indoor				v	v	v		
	124	5620	v	v	v			v	Indoor		v	Indoor				v	v	v		
	128	5640	v	v				v	Indoor		v	Indoor				v		v		
	132	5660	v	v	v	E		v	Indoor		v	Indoor				v		v		
	136	5680	v	v				v	v	v	v	v				v			v	
	140	5700	v	v	E			v	v	v	v	v				v			v	
	144	5720	E	E				E												
"Band 4
5.725GHz
~
5.85GHz
(~5.9GHz)"	149	5745	v	v	v	v		v	v	v	v		v	v			v	v	v	v
	153	5765	v	v				v	v	v	v		v	v			v	v	v	v
	157	5785	v	v	v			v	v	v	v		v	v			v	v	v	v
	161	5805	v	v				v	v	v	v		v	v			v	v	v	v
	165	5825	v	v	P	P		v	v	v	v		v	v			v	v	v	
	169	5845	P	P				P												
	173	5865	P	P	P			P												
	177	5885	P	P				P												
Channel Count			28	28	14	7	0	28	24	20	24	19	5	13	8	19	20	22	15	12
			E: FCC accepted the ask for CH144 from Accord.					PS: 160MHz 用 80MHz+80MHz實現?			Argentina	Belgium (比利時)		India	Israel			Russia		
			P: Customer's requirement from James.								Australia	The Netherlands (荷蘭)		Mexico	Turkey			Ukraine		
											New Zealand	UK (英國)		Singapore						
											Brazil	Switzerland (瑞士)								


*/

/*---------------------------Define Local Constant---------------------------*/


// define Maximum Power v.s each band for each region 
// ISRAEL
// Format:
// RT_CHANNEL_DOMAIN_Region ={{{Chnl_Start, Chnl_end, Pwr_dB_Max}, {Chn2_Start, Chn2_end, Pwr_dB_Max}, {Chn3_Start, Chn3_end, Pwr_dB_Max}, {Chn4_Start, Chn4_end, Pwr_dB_Max}, {Chn5_Start, Chn5_end, Pwr_dB_Max}}, Limit_Num} */
// RT_CHANNEL_DOMAIN_FCC ={{{01,11,30}, {36,48,17}, {52,64,24}, {100,140,24}, {149,165,30}}, 5} 
// "NR" is non-release channle.
// Issue--- Israel--Russia--New Zealand
// DOMAIN_01= (2G_WORLD, 5G_NULL)
// DOMAIN_02= (2G_ETSI1, 5G_NULL)
// DOMAIN_03= (2G_FCC1, 5G_NULL)
// DOMAIN_04= (2G_MKK1, 5G_NULL)
// DOMAIN_05= (2G_ETSI2, 5G_NULL)
// DOMAIN_06= (2G_FCC1, 5G_FCC1)
// DOMAIN_07= (2G_WORLD, 5G_ETSI1)
// DOMAIN_08= (2G_MKK1, 5G_MKK1)
// DOMAIN_09= (2G_WORLD, 5G_KCC1)
// DOMAIN_10= (2G_WORLD, 5G_FCC2)
// DOMAIN_11= (2G_WORLD, 5G_FCC3)----india
// DOMAIN_12= (2G_WORLD, 5G_FCC4)----Venezuela
// DOMAIN_13= (2G_WORLD, 5G_FCC5)----China
// DOMAIN_14= (2G_WORLD, 5G_FCC6)----Israel
// DOMAIN_15= (2G_FCC1, 5G_FCC7)-----Canada
// DOMAIN_16= (2G_WORLD, 5G_ETSI2)---Australia
// DOMAIN_17= (2G_WORLD, 5G_ETSI3)---Russia
// DOMAIN_18= (2G_MKK1, 5G_MKK2)-----Japan
// DOMAIN_19= (2G_MKK1, 5G_MKK3)-----Japan
// DOMAIN_20= (2G_FCC1, 5G_NCC1)-----Taiwan
// DOMAIN_21= (2G_FCC1, 5G_NCC1)-----Taiwan


static	RT_CHANNEL_PLAN_MAXPWR	ChnlPlanPwrMax_2G[] = {

	// 2G_WORLD, 
	{{1, 13, 20}, 1},	

	// 2G_ETSI1
	{{1, 13, 20}, 1},

	/* RT_CHANNEL_DOMAIN_ETSI */
	{{{1, 11, 17}, {40, 56, 17}, {60, 128, 17}, {0, 0, 0}, {149, 165, 17}}, 4},

	// RT_CHANNEL_DOMAIN_MKK
	{{{1, 11, 17}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, 1},

	// Add new channel plan mex power table.
	// ......
	};


/*
//===========================================1:(2G_WORLD, 5G_NULL)

RT_CHANNEL_PLAN_MAXPWR	RT_DOMAIN_01 ={{{01,13,20}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}}, 1} 

//===========================================2:(2G_ETSI1, 5G_NULL)

RT_DOMAIN_02 ={{{01,13,20}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}}, 1}

//===========================================3:(2G_FCC1, 5G_NULL)

RT_DOMAIN_03 ={{{01,11,30}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}}, 1}

//===========================================4:(2G_MKK1, 5G_NULL)

RT_DOMAIN_04 ={{{01,14,23}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}}, 1}

//===========================================5:(2G_ETSI2, 5G_NULL)

RT_DOMAIN_05 ={{{10,13,20}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}}, 1}

//===========================================6:(2G_FCC1, 5G_FCC1)

RT_DOMAIN_06 ={{{01,13,30}, {36,48,17}, {52,64,24}, {100,140,24}, {149,165,30}}, 5}

//===========================================7:(2G_WORLD, 5G_ETSI1)

RT_DOMAIN_07 ={{{01,13,20}, {36,48,23}, {52,64,23}, {100,140,30}, {NR,NR,0}}, 4}

//===========================================8:(2G_MKK1, 5G_MKK1)

RT_DOMAIN_08 ={{{01,14,23}, {36,48,23}, {52,64,23}, {100,140,23}, {NR,NR,0}}, 4}

//===========================================9:(2G_WORLD, 5G_KCC1)

RT_DOMAIN_09 ={{{01,13,20}, {36,48,17}, {52,64,23}, {100,124,23}, {149,165,23}}, 5}

//===========================================10:(2G_WORLD, 5G_FCC2)

RT_DOMAIN_10 ={{{01,13,20}, {36,48,17}, {NR,NR,0}, {NR,NR,0}, {149,165,30}}, 3}

//===========================================11:(2G_WORLD, 5G_FCC3)
RT_DOMAIN_11 ={{{01,13,20}, {36,48,23}, {52,64,23}, {NR,NR,0}, {149,165,23}}, 4}

//===========================================12:(2G_WORLD, 5G_FCC4)
RT_DOMAIN_12 ={{{01,13,20}, {36,48,24}, {52,64,24}, {NR,NR,0}, {149,161,27}}, 4}

//===========================================13:(2G_WORLD, 5G_FCC5)
RT_DOMAIN_13 ={{{01,13,20}, {NR,NR,0}, {NR,NR,0}, {NR,NR,0}, {149,165,27}}, 2}

//===========================================14:(2G_WORLD, 5G_FCC6)
RT_DOMAIN_14 ={{{01,13,20}, {36,48,17}, {52,64,17}, {NR,NR,0}, {NR,NR,0}}, 3}

//===========================================15:(2G_FCC1, 5G_FCC7)
RT_DOMAIN_15 ={{{01,11,30}, {36,48,23}, {52,64,24}, {100,140,24}, {149,165,30}}, 5}

//===========================================16:(2G_WORLD, 5G_ETSI2)
RT_DOMAIN_16 ={{{01,13,20}, {36,48,23}, {52,64,23}, {100,140,30}, {149,165,30}}, 5}

//===========================================17:(2G_WORLD, 5G_ETSI3)
RT_DOMAIN_17 ={{{01,13,20}, {36,48,23}, {52,64,23}, {100,132,30}, {149,165,20}}, 5}

//===========================================18:(2G_MKK1, 5G_MKK2)
RT_DOMAIN_18 ={{{01,14,23}, {36,48,23}, {52,64,23}, {NR,NR,0}, {NR,NR,0}}, 3}

//===========================================19:(2G_MKK1, 5G_MKK3)
RT_DOMAIN_19 ={{{01,14,23}, {NR,NR,0}, {NR,NR,0}, {100,140,23}, {NR,NR,0}}, 2}

//===========================================20:(2G_FCC1, 5G_NCC1)
RT_DOMAIN_20 ={{{01,11,30}, {NR,NR,0}, {56,64,23}, {100,140,24}, {149,165,30}}, 4}

//===========================================21:(2G_FCC1, 5G_NCC2)
RT_DOMAIN_21 ={{{01,11,30}, {NR,NR,0}, {56,64,23}, {NR,NR,0}, {149,165,30}}, 3}

//===========================================22:(2G_WORLD, 5G_FCC3)
RT_DOMAIN_22 ={{{01,13,24}, {36,48,20}, {52,64,24}, {NR,NR,0}, {149,165,30}}, 4}

//===========================================23:(2G_WORLD, 5G_ETSI2)
RT_DOMAIN_23 ={{{01,13,20}, {36,48,23}, {52,64,23}, {100,140,30}, {149,165,30}}, 5}

*/

//
// Counter & Realtek Channel plan transfer table.
//
RT_CHNL_CTRY_TBL	RtCtryChnlTbl[] = 
{

	{
		RT_CTRY_AL,							//	"Albania阿爾巴尼亞"					
		"AL",
		RT_2G_WORLD,
		RT_5G_WORLD,		
		RT_CHANNEL_DOMAIN_UNDEFINED			// 2G/5G world.
	},
#if 0	
	{
		RT_CTRY_BB,							//  "Barbados巴巴多斯"				
		"BB",
		RT_2G_WORLD,
		RT_5G_NULL,		
		RT_CHANNEL_DOMAIN_EFUSE_0x20		// 2G world. 5G_NULL
	},
	
	{
		RT_CTRY_DE,							//  "Germany德國"					
		"DE",
		RT_2G_WORLD,
		RT_5G_ETSI1,		
		RT_CHANNEL_DOMAIN_EFUSE_0x26
	},
	
	{
		RT_CTRY_US,							//  "Germany德國"					
		"US",
		RT_2G_FCC1,
		RT_5G_FCC7,		
		RT_CHANNEL_DOMAIN_EFUSE_0x34
	},

	{
		RT_CTRY_JP,							//  "Germany德國"					
		"JP",
		RT_2G_MKK1,
		RT_5G_MKK1,		
		RT_CHANNEL_DOMAIN_EFUSE_0x34
	},
		
	{
		RT_CTRY_TW,							//  "Germany德國"					
		"TW",
		RT_2G_FCC1,
		RT_5G_NCC1,		
		RT_CHANNEL_DOMAIN_EFUSE_0x39
	},	
#endif

};	// RtCtryChnlTbl

//
// Realtek Defined Channel plan.
//
#if 0

static	RT_CHANNEL_PLAN_NEW		RtChnlPlan[] =
{
	// Channel Plan   0x20.
	{
		&RtCtryChnlTbl[1],					// RT_CHNL_CTRY_TBL Country & channel plan transfer table.		
		RT_CHANNEL_DOMAIN_EFUSE_0x20,		// RT_CHANNEL_DOMAIN RT Channel Plan Define 
		RT_2G_WORLD,						// RT_REGULATION_2G
		RT_5G_NULL,							// RT_REGULATION_5G
		RT_WORLD,							// RT_REGULATION_CMN RT Regulatory domain definition.
		RT_SREQ_NA,							// RT Channel plan special & customerize requirement.
		
		CHNL_RT_2G_WORLD,
		CHNL_RT_2G_WORLD_SCAN_TYPE,
		&ChnlPlanPwrMax_2G[0],

		CHNL_RT_5G_NULL,
		CHNL_RT_5G_NULL_SCAN_TYPE,

		
	},
	
	// Channel Plan   0x26.
	{
		&RtCtryChnlTbl[1],					// RT_CHNL_CTRY_TBL Country & channel plan transfer table.		
		RT_CHANNEL_DOMAIN_EFUSE_0x26,		// RT_CHANNEL_DOMAIN RT Channel Plan Define 
		RT_2G_WORLD,						// RT_REGULATION_2G
		RT_5G_ETSI1,						// RT_REGULATION_5G
		RT_WORLD,							// RT_REGULATION_CMN RT Regulatory domain definition.
		RT_SREQ_NA,							// RT Channel plan special & customerize requirement.
		
		CHNL_RT_2G_WORLD,					// 2G workd cannel
		CHNL_RT_2G_WORLD_SCAN_TYPE,
		&ChnlPlanPwrMax_2G[1],
		
		CHNL_RT_5G_ETSI1,
		CHNL_RT_5G_ETSI1_SCAN_TYPE,
		
	}
	
	
};
#endif