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