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