blob: 19ede4afe9ba64f36d8a158e6369e1f89c21502e [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Komal Seelam644263d2016-02-22 20:45:49 +05302 * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080028#include "targaddrs.h"
29#include "cepci.h"
30#include "regtable.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080031#include "ar6320def.h"
32#include "ar6320v2def.h"
Komal Seelam644263d2016-02-22 20:45:49 +053033#include "hif_main.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080034#include "adrastea_reg_def.h"
35
Houston Hoffmanc3c6bc12016-05-06 17:08:39 -070036#include "targetdef.h"
37#include "hostdef.h"
38
Govind Singh051a8c42016-05-10 12:23:41 +053039void hif_target_register_tbl_attach(struct hif_softc *scn, u32 target_type)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080040{
41 switch (target_type) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080042 case TARGET_TYPE_AR6320:
43 scn->targetdef = &ar6320_targetdef;
44 scn->target_ce_def = &ar6320_ce_targetdef;
45 break;
46 case TARGET_TYPE_AR6320V2:
47 scn->targetdef = &ar6320v2_targetdef;
48 scn->target_ce_def = &ar6320v2_ce_targetdef;
49 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080050 case TARGET_TYPE_ADRASTEA:
51 scn->targetdef = &adrastea_targetdef;
52 scn->target_ce_def = &adrastea_ce_targetdef;
53 break;
Houston Hoffmanc3c6bc12016-05-06 17:08:39 -070054#if defined(AR6002_HEADERS_DEF)
55 case TARGET_TYPE_AR6002:
56 scn->targetdef = AR6002_TARGETdef;
57 break;
58#endif
59#if defined(AR6003_HEADERS_DEF)
60 case TARGET_TYPE_AR6003:
61 scn->targetdef = AR6003_TARGETdef;
62 break;
63#endif
64#if defined(AR6004_HEADERS_DEF)
65 case TARGET_TYPE_AR6004:
66 scn->targetdef = AR6004_TARGETdef;
67 break;
68#endif
69#if defined(AR9888_HEADERS_DEF)
70 case TARGET_TYPE_AR9888:
71 scn->targetdef = AR9888_TARGETdef;
72 scn->target_ce_def = AR9888_CE_TARGETdef;
73 break;
74#endif
75#if defined(AR9888V2_HEADERS_DEF)
76 case TARGET_TYPE_AR9888V2:
77 scn->targetdef = AR9888V2_TARGETdef;
78 scn->target_ce_def = AR9888_CE_TARGETdef;
79 break;
80#endif
81#if defined(AR900B_HEADERS_DEF)
82 case TARGET_TYPE_AR900B:
83 scn->targetdef = AR900B_TARGETdef;
84 scn->target_ce_def = AR900B_CE_TARGETdef;
85 break;
86#endif
87#if defined(QCA9984_HEADERS_DEF)
88 case TARGET_TYPE_QCA9984:
89 scn->targetdef = QCA9984_TARGETdef;
90 scn->target_ce_def = QCA9984_CE_TARGETdef;
91 break;
92#endif
93#if defined(QCA9888_HEADERS_DEF)
94 case TARGET_TYPE_QCA9888:
95 scn->targetdef = QCA9888_TARGETdef;
96 scn->target_ce_def = QCA9888_CE_TARGETdef;
97 break;
98#endif
99#ifdef ATH_AHB
100#if defined(IPQ4019_HEADERS_DEF)
101 case TARGET_TYPE_IPQ4019:
102 scn->targetdef = IPQ4019_TARGETdef;
103 scn->target_ce_def = IPQ4019_CE_TARGETdef;
104 break;
105#endif
106#endif
107
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800108 default:
109 break;
110 }
111}
112
Komal Seelam644263d2016-02-22 20:45:49 +0530113void hif_register_tbl_attach(struct hif_softc *scn, u32 hif_type)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800114{
115 switch (hif_type) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800116 case HIF_TYPE_AR6320V2:
117 scn->hostdef = &ar6320v2_hostdef;
118 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800119 case HIF_TYPE_ADRASTEA:
120 scn->hostdef = &adrastea_hostdef;
121 scn->host_shadow_regs = &adrastea_host_shadow_regs;
122 break;
Houston Hoffmanc3c6bc12016-05-06 17:08:39 -0700123#if defined(AR6002_HEADERS_DEF)
124 case HIF_TYPE_AR6002:
125 scn->hostdef = AR6002_HOSTdef;
126 break;
127#endif
128#if defined(AR6003_HEADERS_DEF)
129 case HIF_TYPE_AR6003:
130 scn->hostdef = AR6003_HOSTdef;
131 break;
132#endif
133#if defined(AR6004_HEADERS_DEF)
134 case HIF_TYPE_AR6004:
135 scn->hostdef = AR6004_HOSTdef;
136 break;
137#endif
138#if defined(AR9888_HEADERS_DEF)
139 case HIF_TYPE_AR9888:
140 scn->hostdef = AR9888_HOSTdef;
141 break;
142#endif
143#if defined(AR9888V2_HEADERS_DEF)
144 case HIF_TYPE_AR9888V2:
145 scn->hostdef = AR9888V2_HOSTdef;
146 break;
147#endif
148#if defined(AR900B_HEADERS_DEF)
149 case HIF_TYPE_AR900B:
150 scn->hostdef = AR900B_HOSTdef;
151 break;
152#endif
153#if defined(QCA9984_HEADERS_DEF)
154 case HIF_TYPE_QCA9984:
155 scn->hostdef = QCA9984_HOSTdef;
156 break;
157#endif
158#if defined(QCA9888_HEADERS_DEF)
159 case HIF_TYPE_QCA9888:
160 scn->hostdef = QCA9888_HOSTdef;
161 break;
162#endif
163
164#ifdef ATH_AHB
165#if defined(IPQ4019_HEADERS_DEF)
166 case HIF_TYPE_IPQ4019:
167 scn->hostdef = IPQ4019_HOSTdef;
168 break;
169#endif
170#endif
171
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800172 default:
173 break;
174 }
175}