xref: /rk3399_rockchip-uboot/arch/mips/mach-ath79/include/mach/ath79.h (revision 1d3d0f1f1cd8bac8ea0135c92a2bcd5020abfb1d)
1*1d3d0f1fSWills Wang /*
2*1d3d0f1fSWills Wang  * Atheros AR71XX/AR724X/AR913X common definitions
3*1d3d0f1fSWills Wang  *
4*1d3d0f1fSWills Wang  * Copyright (C) 2015-2016 Wills Wang <wills.wang@live.com>
5*1d3d0f1fSWills Wang  * Copyright (C) 2008-2011 Gabor Juhos <juhosg@openwrt.org>
6*1d3d0f1fSWills Wang  * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
7*1d3d0f1fSWills Wang  *
8*1d3d0f1fSWills Wang  * SPDX-License-Identifier:	GPL-2.0+
9*1d3d0f1fSWills Wang  */
10*1d3d0f1fSWills Wang 
11*1d3d0f1fSWills Wang #ifndef __ASM_MACH_ATH79_H
12*1d3d0f1fSWills Wang #define __ASM_MACH_ATH79_H
13*1d3d0f1fSWills Wang 
14*1d3d0f1fSWills Wang #include <linux/types.h>
15*1d3d0f1fSWills Wang 
16*1d3d0f1fSWills Wang DECLARE_GLOBAL_DATA_PTR;
17*1d3d0f1fSWills Wang 
18*1d3d0f1fSWills Wang enum ath79_soc_type {
19*1d3d0f1fSWills Wang 	ATH79_SOC_UNKNOWN,
20*1d3d0f1fSWills Wang 	ATH79_SOC_AR7130,
21*1d3d0f1fSWills Wang 	ATH79_SOC_AR7141,
22*1d3d0f1fSWills Wang 	ATH79_SOC_AR7161,
23*1d3d0f1fSWills Wang 	ATH79_SOC_AR7240,
24*1d3d0f1fSWills Wang 	ATH79_SOC_AR7241,
25*1d3d0f1fSWills Wang 	ATH79_SOC_AR7242,
26*1d3d0f1fSWills Wang 	ATH79_SOC_AR9130,
27*1d3d0f1fSWills Wang 	ATH79_SOC_AR9132,
28*1d3d0f1fSWills Wang 	ATH79_SOC_AR9330,
29*1d3d0f1fSWills Wang 	ATH79_SOC_AR9331,
30*1d3d0f1fSWills Wang 	ATH79_SOC_AR9341,
31*1d3d0f1fSWills Wang 	ATH79_SOC_AR9342,
32*1d3d0f1fSWills Wang 	ATH79_SOC_AR9344,
33*1d3d0f1fSWills Wang 	ATH79_SOC_QCA9533,
34*1d3d0f1fSWills Wang 	ATH79_SOC_QCA9556,
35*1d3d0f1fSWills Wang 	ATH79_SOC_QCA9558,
36*1d3d0f1fSWills Wang 	ATH79_SOC_TP9343,
37*1d3d0f1fSWills Wang 	ATH79_SOC_QCA9561,
38*1d3d0f1fSWills Wang };
39*1d3d0f1fSWills Wang 
40*1d3d0f1fSWills Wang static inline int soc_is_ar71xx(void)
41*1d3d0f1fSWills Wang {
42*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR7130 ||
43*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR7141 ||
44*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR7161;
45*1d3d0f1fSWills Wang }
46*1d3d0f1fSWills Wang 
47*1d3d0f1fSWills Wang static inline int soc_is_ar724x(void)
48*1d3d0f1fSWills Wang {
49*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR7240 ||
50*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR7241 ||
51*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR7242;
52*1d3d0f1fSWills Wang }
53*1d3d0f1fSWills Wang 
54*1d3d0f1fSWills Wang static inline int soc_is_ar7240(void)
55*1d3d0f1fSWills Wang {
56*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR7240;
57*1d3d0f1fSWills Wang }
58*1d3d0f1fSWills Wang 
59*1d3d0f1fSWills Wang static inline int soc_is_ar7241(void)
60*1d3d0f1fSWills Wang {
61*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR7241;
62*1d3d0f1fSWills Wang }
63*1d3d0f1fSWills Wang 
64*1d3d0f1fSWills Wang static inline int soc_is_ar7242(void)
65*1d3d0f1fSWills Wang {
66*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR7242;
67*1d3d0f1fSWills Wang }
68*1d3d0f1fSWills Wang 
69*1d3d0f1fSWills Wang static inline int soc_is_ar913x(void)
70*1d3d0f1fSWills Wang {
71*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR9130 ||
72*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR9132;
73*1d3d0f1fSWills Wang }
74*1d3d0f1fSWills Wang 
75*1d3d0f1fSWills Wang static inline int soc_is_ar933x(void)
76*1d3d0f1fSWills Wang {
77*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR9330 ||
78*1d3d0f1fSWills Wang 		gd->arch.soc == ATH79_SOC_AR9331;
79*1d3d0f1fSWills Wang }
80*1d3d0f1fSWills Wang 
81*1d3d0f1fSWills Wang static inline int soc_is_ar9341(void)
82*1d3d0f1fSWills Wang {
83*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR9341;
84*1d3d0f1fSWills Wang }
85*1d3d0f1fSWills Wang 
86*1d3d0f1fSWills Wang static inline int soc_is_ar9342(void)
87*1d3d0f1fSWills Wang {
88*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR9342;
89*1d3d0f1fSWills Wang }
90*1d3d0f1fSWills Wang 
91*1d3d0f1fSWills Wang static inline int soc_is_ar9344(void)
92*1d3d0f1fSWills Wang {
93*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_AR9344;
94*1d3d0f1fSWills Wang }
95*1d3d0f1fSWills Wang 
96*1d3d0f1fSWills Wang static inline int soc_is_ar934x(void)
97*1d3d0f1fSWills Wang {
98*1d3d0f1fSWills Wang 	return soc_is_ar9341() ||
99*1d3d0f1fSWills Wang 		soc_is_ar9342() ||
100*1d3d0f1fSWills Wang 		soc_is_ar9344();
101*1d3d0f1fSWills Wang }
102*1d3d0f1fSWills Wang 
103*1d3d0f1fSWills Wang static inline int soc_is_qca9533(void)
104*1d3d0f1fSWills Wang {
105*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_QCA9533;
106*1d3d0f1fSWills Wang }
107*1d3d0f1fSWills Wang 
108*1d3d0f1fSWills Wang static inline int soc_is_qca953x(void)
109*1d3d0f1fSWills Wang {
110*1d3d0f1fSWills Wang 	return soc_is_qca9533();
111*1d3d0f1fSWills Wang }
112*1d3d0f1fSWills Wang 
113*1d3d0f1fSWills Wang static inline int soc_is_qca9556(void)
114*1d3d0f1fSWills Wang {
115*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_QCA9556;
116*1d3d0f1fSWills Wang }
117*1d3d0f1fSWills Wang 
118*1d3d0f1fSWills Wang static inline int soc_is_qca9558(void)
119*1d3d0f1fSWills Wang {
120*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_QCA9558;
121*1d3d0f1fSWills Wang }
122*1d3d0f1fSWills Wang 
123*1d3d0f1fSWills Wang static inline int soc_is_qca955x(void)
124*1d3d0f1fSWills Wang {
125*1d3d0f1fSWills Wang 	return soc_is_qca9556() || soc_is_qca9558();
126*1d3d0f1fSWills Wang }
127*1d3d0f1fSWills Wang 
128*1d3d0f1fSWills Wang static inline int soc_is_tp9343(void)
129*1d3d0f1fSWills Wang {
130*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_TP9343;
131*1d3d0f1fSWills Wang }
132*1d3d0f1fSWills Wang 
133*1d3d0f1fSWills Wang static inline int soc_is_qca9561(void)
134*1d3d0f1fSWills Wang {
135*1d3d0f1fSWills Wang 	return gd->arch.soc == ATH79_SOC_QCA9561;
136*1d3d0f1fSWills Wang }
137*1d3d0f1fSWills Wang 
138*1d3d0f1fSWills Wang static inline int soc_is_qca956x(void)
139*1d3d0f1fSWills Wang {
140*1d3d0f1fSWills Wang 	return soc_is_tp9343() || soc_is_qca9561();
141*1d3d0f1fSWills Wang }
142*1d3d0f1fSWills Wang 
143*1d3d0f1fSWills Wang #endif /* __ASM_MACH_ATH79_H */
144