summaryrefslogtreecommitdiff
path: root/arch/mips/mach-ath79/include/mach/ath79.h
blob: 90d80b8bc8c92c2859510814deae114d0e705912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Atheros AR71XX/AR724X/AR913X common definitions
 *
 * Copyright (C) 2015-2016 Wills Wang <wills.wang@live.com>
 * Copyright (C) 2008-2011 Gabor Juhos <juhosg@openwrt.org>
 * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#ifndef __ASM_MACH_ATH79_H
#define __ASM_MACH_ATH79_H

#include <linux/types.h>

DECLARE_GLOBAL_DATA_PTR;

enum ath79_soc_type {
	ATH79_SOC_UNKNOWN,
	ATH79_SOC_AR7130,
	ATH79_SOC_AR7141,
	ATH79_SOC_AR7161,
	ATH79_SOC_AR7240,
	ATH79_SOC_AR7241,
	ATH79_SOC_AR7242,
	ATH79_SOC_AR9130,
	ATH79_SOC_AR9132,
	ATH79_SOC_AR9330,
	ATH79_SOC_AR9331,
	ATH79_SOC_AR9341,
	ATH79_SOC_AR9342,
	ATH79_SOC_AR9344,
	ATH79_SOC_QCA9533,
	ATH79_SOC_QCA9556,
	ATH79_SOC_QCA9558,
	ATH79_SOC_TP9343,
	ATH79_SOC_QCA9561,
};

static inline int soc_is_ar71xx(void)
{
	return gd->arch.soc == ATH79_SOC_AR7130 ||
		gd->arch.soc == ATH79_SOC_AR7141 ||
		gd->arch.soc == ATH79_SOC_AR7161;
}

static inline int soc_is_ar724x(void)
{
	return gd->arch.soc == ATH79_SOC_AR7240 ||
		gd->arch.soc == ATH79_SOC_AR7241 ||
		gd->arch.soc == ATH79_SOC_AR7242;
}

static inline int soc_is_ar7240(void)
{
	return gd->arch.soc == ATH79_SOC_AR7240;
}

static inline int soc_is_ar7241(void)
{
	return gd->arch.soc == ATH79_SOC_AR7241;
}

static inline int soc_is_ar7242(void)
{
	return gd->arch.soc == ATH79_SOC_AR7242;
}

static inline int soc_is_ar913x(void)
{
	return gd->arch.soc == ATH79_SOC_AR9130 ||
		gd->arch.soc == ATH79_SOC_AR9132;
}

static inline int soc_is_ar933x(void)
{
	return gd->arch.soc == ATH79_SOC_AR9330 ||
		gd->arch.soc == ATH79_SOC_AR9331;
}

static inline int soc_is_ar9341(void)
{
	return gd->arch.soc == ATH79_SOC_AR9341;
}

static inline int soc_is_ar9342(void)
{
	return gd->arch.soc == ATH79_SOC_AR9342;
}

static inline int soc_is_ar9344(void)
{
	return gd->arch.soc == ATH79_SOC_AR9344;
}

static inline int soc_is_ar934x(void)
{
	return soc_is_ar9341() ||
		soc_is_ar9342() ||
		soc_is_ar9344();
}

static inline int soc_is_qca9533(void)
{
	return gd->arch.soc == ATH79_SOC_QCA9533;
}

static inline int soc_is_qca953x(void)
{
	return soc_is_qca9533();
}

static inline int soc_is_qca9556(void)
{
	return gd->arch.soc == ATH79_SOC_QCA9556;
}

static inline int soc_is_qca9558(void)
{
	return gd->arch.soc == ATH79_SOC_QCA9558;
}

static inline int soc_is_qca955x(void)
{
	return soc_is_qca9556() || soc_is_qca9558();
}

static inline int soc_is_tp9343(void)
{
	return gd->arch.soc == ATH79_SOC_TP9343;
}

static inline int soc_is_qca9561(void)
{
	return gd->arch.soc == ATH79_SOC_QCA9561;
}

static inline int soc_is_qca956x(void)
{
	return soc_is_tp9343() || soc_is_qca9561();
}

#endif /* __ASM_MACH_ATH79_H */