Add watchdog timer control register bit fields for QCA
[oweals/u-boot_mod.git] / u-boot / include / soc / qca_soc_common.h
1 /*
2  * Qualcomm/Atheros Wireless SOC common registers definitions
3  *
4  * Copyright (C) 2016 Piotr Dymacz <piotr@dymacz.pl>
5  * Copyright (C) 2014 Qualcomm Atheros, Inc.
6  * Copyright (C) 2008-2010 Atheros Communications Inc.
7  *
8  * Partially based on:
9  * Linux/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
10  *
11  * SPDX-License-Identifier: GPL-2.0
12  */
13
14 #ifndef _QCA_SOC_COMMON_H_
15 #define _QCA_SOC_COMMON_H_
16
17 #include <soc/soc_common.h>
18
19 /*
20  * Address map
21  */
22 #define QCA_APB_BASE_REG        0x18000000
23 #define QCA_FLASH_BASE_REG      0x1F000000
24 #define QCA_PCIE_BASE_REG       0x10000000
25
26 /*
27  * APB block
28  */
29 #define QCA_DDR_CTRL_BASE_REG           QCA_APB_BASE_REG + 0x00000000
30
31 #if (SOC_TYPE & QCA_AR933X_SOC)
32         #define QCA_HSUART_BASE_REG     QCA_APB_BASE_REG + 0x00020000
33 #else
34         #define QCA_LSUART_BASE_REG     QCA_APB_BASE_REG + 0x00020000
35         #define QCA_HSUART_BASE_REG     QCA_APB_BASE_REG + 0x00500000
36 #endif
37
38 #define QCA_USB_CFG_BASE_REG            QCA_APB_BASE_REG + 0x00030000
39 #define QCA_GPIO_BASE_REG               QCA_APB_BASE_REG + 0x00040000
40 #define QCA_PLL_BASE_REG                QCA_APB_BASE_REG + 0x00050000
41 #define QCA_RST_BASE_REG                QCA_APB_BASE_REG + 0x00060000
42 #define QCA_GMAC_BASE_REG               QCA_APB_BASE_REG + 0x00070000
43 #define QCA_RTC_BASE_REG                QCA_APB_BASE_REG + 0x00107000
44 #define QCA_PLL_SRIF_BASE_REG           QCA_APB_BASE_REG + 0x00116000
45 #define QCA_PCIE_RC0_CTRL_BASE_REG      QCA_APB_BASE_REG + 0x000F0000
46 #define QCA_PCIE_RC1_CTRL_BASE_REG      QCA_APB_BASE_REG + 0x00280000
47
48 #if (SOC_TYPE & QCA_AR933X_SOC)
49         #define QCA_SLIC_BASE_REG       QCA_APB_BASE_REG + 0x00090000
50 #elif (SOC_TYPE & QCA_AR934X_SOC) |\
51       (SOC_TYPE & QCA_AR955X_SOC)
52         #define QCA_SLIC_BASE_REG       QCA_APB_BASE_REG + 0x000A9000
53 #endif
54
55 /*
56  * PCIE bridge address space
57  */
58 #define QCA_PCIE_RC0_SLAVE_CFG_BASE_REG QCA_PCIE_BASE_REG + 0x04000000
59 #define QCA_PCIE_RC1_SLAVE_CFG_BASE_REG QCA_PCIE_BASE_REG + 0x06000000
60
61 /*
62  * DDR registers
63  */
64 #define QCA_DDR_CFG_REG                 QCA_DDR_CTRL_BASE_REG + 0x000
65 #define QCA_DDR_CFG2_REG                QCA_DDR_CTRL_BASE_REG + 0x004
66 #define QCA_DDR_MR_REG                  QCA_DDR_CTRL_BASE_REG + 0x008
67 #define QCA_DDR_EMR_REG                 QCA_DDR_CTRL_BASE_REG + 0x00C
68 #define QCA_DDR_CTRL_REG                QCA_DDR_CTRL_BASE_REG + 0x010
69 #define QCA_DDR_REFRESH_REG             QCA_DDR_CTRL_BASE_REG + 0x014
70 #define QCA_DDR_RD_DATA_THIS_CYCLE_REG  QCA_DDR_CTRL_BASE_REG + 0x018
71 #define QCA_DDR_TAP_CTRL_0_REG          QCA_DDR_CTRL_BASE_REG + 0x01C
72 #define QCA_DDR_TAP_CTRL_1_REG          QCA_DDR_CTRL_BASE_REG + 0x020
73 #define QCA_DDR_TAP_CTRL_2_REG          QCA_DDR_CTRL_BASE_REG + 0x024
74 #define QCA_DDR_TAP_CTRL_3_REG          QCA_DDR_CTRL_BASE_REG + 0x028
75
76 #if (SOC_TYPE & QCA_AR933X_SOC)
77         #define QCA_DDR_WB_FLUSH_GE0_REG                QCA_DDR_CTRL_BASE_REG + 0x07C
78         #define QCA_DDR_WB_FLUSH_GE1_REG                QCA_DDR_CTRL_BASE_REG + 0x080
79         #define QCA_DDR_WB_FLUSH_USB_REG                QCA_DDR_CTRL_BASE_REG + 0x084
80         #define QCA_DDR_DDR2_CFG_REG                    QCA_DDR_CTRL_BASE_REG + 0x08C
81         #define QCA_DDR_EMR2_REG                        QCA_DDR_CTRL_BASE_REG + 0x090
82         #define QCA_DDR_EMR3_REG                        QCA_DDR_CTRL_BASE_REG + 0x094
83         #define QCA_DDR_BURST_REG                       QCA_DDR_CTRL_BASE_REG + 0x098
84         #define QCA_AHB_MASTER_TOUT_MAX_REG             QCA_DDR_CTRL_BASE_REG + 0x09C
85         #define QCA_AHB_MASTER_TOUT_CURR_REG            QCA_DDR_CTRL_BASE_REG + 0x0A0
86         #define QCA_AHB_MASTER_TOUT_SLV_ADDR_REG        QCA_DDR_CTRL_BASE_REG + 0x0A4
87         #define QCA_SDR_CFG_REG                         QCA_DDR_CTRL_BASE_REG + 0x0D8
88 #else
89         #define QCA_DDR_WB_FLUSH_GE0_REG                QCA_DDR_CTRL_BASE_REG + 0x09C
90         #define QCA_DDR_WB_FLUSH_GE1_REG                QCA_DDR_CTRL_BASE_REG + 0x0A0
91         #define QCA_DDR_WB_FLUSH_USB_REG                QCA_DDR_CTRL_BASE_REG + 0x0A4
92         #define QCA_DDR_WB_FLUSH_PCIE_REG               QCA_DDR_CTRL_BASE_REG + 0x0A8
93         #define QCA_DDR_WB_FLUSH_WMAC_REG               QCA_DDR_CTRL_BASE_REG + 0x0AC
94         #define QCA_DDR_WB_FLUSH_SRC1_REG               QCA_DDR_CTRL_BASE_REG + 0x0B0
95         #define QCA_DDR_WB_FLUSH_SRC2_REG               QCA_DDR_CTRL_BASE_REG + 0x0B4
96         #define QCA_DDR_DDR2_CFG_REG                    QCA_DDR_CTRL_BASE_REG + 0x0B8
97         #define QCA_DDR_EMR2_REG                        QCA_DDR_CTRL_BASE_REG + 0x0BC
98         #define QCA_DDR_EMR3_REG                        QCA_DDR_CTRL_BASE_REG + 0x0C0
99         #define QCA_DDR_BURST_REG                       QCA_DDR_CTRL_BASE_REG + 0x0C4
100         #define QCA_DDR_BURST2_REG                      QCA_DDR_CTRL_BASE_REG + 0x0C8
101         #define QCA_AHB_MASTER_TOUT_MAX_REG             QCA_DDR_CTRL_BASE_REG + 0x0CC
102         #define QCA_AHB_MASTER_TOUT_CURR_REG            QCA_DDR_CTRL_BASE_REG + 0x0D0
103         #define QCA_AHB_MASTER_TOUT_SLV_ADDR_REG        QCA_DDR_CTRL_BASE_REG + 0x0D4
104         #define QCA_DDR_FSM_WAIT_CTRL_REG               QCA_DDR_CTRL_BASE_REG + 0x0E4
105         #define QCA_DDR_CTRL_CFG_REG                    QCA_DDR_CTRL_BASE_REG + 0x108
106         #define QCA_DDR_SELF_REFRESH_CTRL_REG           QCA_DDR_CTRL_BASE_REG + 0x110
107         #define QCA_DDR_SELF_REFRESH_TIMER_REG          QCA_DDR_CTRL_BASE_REG + 0x114
108         #define QCA_DDR_WMAC_FLUSH_REG                  QCA_DDR_CTRL_BASE_REG + 0x128
109         #define QCA_DDR_CFG3_REG                        QCA_DDR_CTRL_BASE_REG + 0x15C
110
111         /*
112          * Below register addresses and names come directly form Atheros (Q)SDK code:
113          * tap-955x.S/tap-953x.S/tap-956x.S, as they do not exist in any datasheet
114          */
115         #define QCA_DDR_PERF_MASK_ADDR_0_REG            QCA_DDR_CTRL_BASE_REG + 0x02C
116         #define QCA_DDR_PERF_MASK_AHB_GE0_0_REG         QCA_DDR_CTRL_BASE_REG + 0x034
117         #define QCA_DDR_PERF_COMP_AHB_GE0_0_REG         QCA_DDR_CTRL_BASE_REG + 0x038
118         #define QCA_DDR_PERF_MASK_AHB_GE1_0_REG         QCA_DDR_CTRL_BASE_REG + 0x03C
119         #define QCA_DDR_PERF_COMP_AHB_GE1_0_REG         QCA_DDR_CTRL_BASE_REG + 0x040
120         #define QCA_DDR_PERF_COMP_ADDR_1_REG            QCA_DDR_CTRL_BASE_REG + 0x068
121         #define QCA_DDR_PERF_MASK_AHB_GE0_1_REG         QCA_DDR_CTRL_BASE_REG + 0x06C
122         #define QCA_DDR_PERF_COMP_AHB_GE0_1_REG         QCA_DDR_CTRL_BASE_REG + 0x070
123         #define QCA_DDR_PERF_MASK_AHB_GE1_1_REG         QCA_DDR_CTRL_BASE_REG + 0x074
124         #define QCA_DDR_PERF_COMP_AHB_GE1_1_REG         QCA_DDR_CTRL_BASE_REG + 0x078
125         #define QCA_DDR_BIST_REG                        QCA_DDR_CTRL_BASE_REG + 0x11C
126         #define QCA_DDR_BIST_STATUS_REG                 QCA_DDR_CTRL_BASE_REG + 0x120
127 #endif
128
129 /*
130  * DDR registers BIT fields
131  */
132
133 /* DDR_CONFIG register (DDR DRAM configuration) */
134 #define QCA_DDR_CFG_TRAS_SHIFT          0
135 #define QCA_DDR_CFG_TRAS_MASK           BITS(QCA_DDR_CFG_TRAS_SHIFT, 5)
136 #define QCA_DDR_CFG_TRCD_SHIFT          5
137 #define QCA_DDR_CFG_TRCD_MASK           BITS(QCA_DDR_CFG_TRCD_SHIFT, 4)
138 #define QCA_DDR_CFG_TRP_SHIFT           9
139 #define QCA_DDR_CFG_TRP_MASK            BITS(QCA_DDR_CFG_TRP_SHIFT, 4)
140 #define QCA_DDR_CFG_TRRD_SHIFT          13
141 #define QCA_DDR_CFG_TRRD_MASK           BITS(QCA_DDR_CFG_TRRD_SHIFT, 4)
142 #define QCA_DDR_CFG_TRFC_SHIFT          17
143 #define QCA_DDR_CFG_TRFC_MASK           BITS(QCA_DDR_CFG_TRFC_SHIFT, 6)
144 #define QCA_DDR_CFG_TMRD_SHIFT          23
145 #define QCA_DDR_CFG_TMRD_MASK           BITS(QCA_DDR_CFG_TMRD_SHIFT, 4)
146 #define QCA_DDR_CFG_CAS_3LSB_SHIFT      27
147 #define QCA_DDR_CFG_CAS_3LSB_MASK       BITS(QCA_DDR_CFG_CAS_3LSB_SHIFT, 3)
148 #define QCA_DDR_CFG_PAGE_CLOSE_SHIFT    30
149 #define QCA_DDR_CFG_PAGE_CLOSE_MASK     BIT(QCA_DDR_CFG_PAGE_CLOSE_SHIFT)
150 #define QCA_DDR_CFG_CAS_MSB_SHIFT       31
151 #define QCA_DDR_CFG_CAS_MSB_MASK        BIT(QCA_DDR_CFG_CAS_MSB_SHIFT)
152
153 /* DDR_CONFIG2 register (DDR DRAM configuration 2) */
154 #define QCA_DDR_CFG2_BURST_LEN_SHIFT            0
155 #define QCA_DDR_CFG2_BURST_LEN_MASK             BITS(QCA_DDR_CFG2_BURST_LEN_SHIFT, 4)
156 #define QCA_DDR_CFG2_BURST_TYPE_SHIFT           4
157 #define QCA_DDR_CFG2_BURST_TYPE_MASK            BIT(QCA_DDR_CFG2_BURST_TYPE_SHIFT)
158 #define QCA_DDR_CFG2_CTRL_OE_EN_SHIFT           5
159 #define QCA_DDR_CFG2_CTRL_OE_EN_MASK            BIT(QCA_DDR_CFG2_CTRL_OE_EN_SHIFT)
160 #define QCA_DDR_CFG2_PHASE_SEL_SHIFT            6
161 #define QCA_DDR_CFG2_PHASE_SEL_MASK             BIT(QCA_DDR_CFG2_PHASE_SEL_SHIFT)
162 #define QCA_DDR_CFG2_CKE_SHIFT                  7
163 #define QCA_DDR_CFG2_CKE_MASK                   BIT(QCA_DDR_CFG2_CKE_SHIFT)
164 #define QCA_DDR_CFG2_TWR_SHIFT                  8
165 #define QCA_DDR_CFG2_TWR_MASK                   BITS(QCA_DDR_CFG2_TWR_SHIFT, 4)
166 #define QCA_DDR_CFG2_TRTW_SHIFT                 12
167 #define QCA_DDR_CFG2_TRTW_MASK                  BITS(QCA_DDR_CFG2_TRTW_SHIFT, 5)
168 #define QCA_DDR_CFG2_TRTP_SHIFT                 17
169 #define QCA_DDR_CFG2_TRTP_MASK                  BITS(QCA_DDR_CFG2_TRTP_SHIFT, 4)
170 #define QCA_DDR_CFG2_TWTR_SHIFT                 21
171 #define QCA_DDR_CFG2_TWTR_MASK                  BITS(QCA_DDR_CFG2_TWTR_SHIFT, 5)
172 #define QCA_DDR_CFG2_GATE_OPEN_LATENCY_SHIFT    26
173 #define QCA_DDR_CFG2_GATE_OPEN_LATENCY_MASK     BITS(QCA_DDR_CFG2_GATE_OPEN_LATENCY_SHIFT, 4)
174 #define QCA_DDR_CFG2_SWAP_A26_A27_SHIFT         30
175 #define QCA_DDR_CFG2_SWAP_A26_A27_MASK          BIT(QCA_DDR_CFG2_SWAP_A26_A27_SHIFT)
176 #define QCA_DDR_CFG2_HALF_WIDTH_LOW_SHIFT       31
177 #define QCA_DDR_CFG2_HALF_WIDTH_LOW_MASK        BIT(QCA_DDR_CFG2_HALF_WIDTH_LOW_SHIFT)
178
179 /* DDR_MODE register (DDR mode register value) */
180 #define QCA_DDR_MR_VALUE_SHIFT  0
181 #define QCA_DDR_MR_VALUE_MASK   BITS(QCA_DDR_MR_VALUE_SHIFT, 14)
182
183 /* DDR_EMR registers (DDR extended mode register 1/2/3 values) */
184 #define QCA_DDR_EMR_VALUE_SHIFT 0
185 #define QCA_DDR_EMR_VALUE_MASK  BITS(QCA_DDR_EMR_VALUE_SHIFT, 14)
186
187 /* DDR_CONTROL register (DDR control) */
188 #define QCA_DDR_CTRL_FORCE_MRS_SHIFT            0
189 #define QCA_DDR_CTRL_FORCE_MRS_MASK             BIT(QCA_DDR_CTRL_FORCE_MRS_SHIFT)
190 #define QCA_DDR_CTRL_FORCE_EMRS_SHIFT           1
191 #define QCA_DDR_CTRL_FORCE_EMRS_MASK            BIT(QCA_DDR_CTRL_FORCE_EMRS_SHIFT)
192 #define QCA_DDR_CTRL_FORCE_AUTO_REFRESH_SHIFT   2
193 #define QCA_DDR_CTRL_FORCE_AUTO_REFRESH_MASK    BIT(QCA_DDR_CTRL_FORCE_AUTO_REFRESH_SHIFT)
194 #define QCA_DDR_CTRL_FORCE_PRECHARGE_ALL_SHIFT  3
195 #define QCA_DDR_CTRL_FORCE_PRECHARGE_ALL_MASK   BIT(QCA_DDR_CTRL_FORCE_PRECHARGE_ALL_SHIFT)
196 #define QCA_DDR_CTRL_FORCE_EMR2S_SHIFT          4
197 #define QCA_DDR_CTRL_FORCE_EMR2S_MASK           BIT(QCA_DDR_CTRL_FORCE_EMR2S_SHIFT)
198 #define QCA_DDR_CTRL_FORCE_EMR3S_SHIFT          5
199 #define QCA_DDR_CTRL_FORCE_EMR3S_MASK           BIT(QCA_DDR_CTRL_FORCE_EMR3S_SHIFT)
200
201 /* DDR_REFRESH register (DDR refresh control and configuration) */
202 #define QCA_DDR_REFRESH_PERIOD_SHIFT    0
203 #define QCA_DDR_REFRESH_PERIOD_MASK     BITS(QCA_DDR_REFRESH_PERIOD_SHIFT, 14)
204 #define QCA_DDR_REFRESH_EN_SHIFT        14
205 #define QCA_DDR_REFRESH_EN_MASK         BIT(QCA_DDR_REFRESH_EN_SHIFT)
206
207 /* DDR_RD_DATA_THIS_CYCLE register (DDR read data capture bit mask) */
208 #define QCA_DDR_RD_DATA_THIS_CYCLE_VEC_SHIFT    0
209 #define QCA_DDR_RD_DATA_THIS_CYCLE_VEC_MASK     BITS(QCA_DDR_RD_DATA_THIS_CYCLE_VEC_SHIFT, 32)
210
211 /* TAP_CONTROL_X registers (DQS delay tap control for byte X) */
212 #if (SOC_TYPE & QCA_AR933X_SOC) |\
213     (SOC_TYPE & QCA_AR934X_SOC)
214         #define QCA_DDR_TAP_CTRL_TAP_L_SHIFT            0
215         #define QCA_DDR_TAP_CTRL_TAP_L_MASK             BITS(QCA_DDR_TAP_CTRL_TAP_L_SHIFT, 5)
216         #define QCA_DDR_TAP_CTRL_TAP_H_SHIFT            8
217         #define QCA_DDR_TAP_CTRL_TAP_H_MASK             BITS(QCA_DDR_TAP_CTRL_TAP_H_SHIFT, 5)
218         #define QCA_DDR_TAP_CTRL_TAP_H_BYPASS_SHIFT     16
219         #define QCA_DDR_TAP_CTRL_TAP_H_BYPASS_MASK      BIT(QCA_DDR_TAP_CTRL_TAP_H_BYPASS_SHIFT)
220 #else
221         #define QCA_DDR_TAP_CTRL_TAP_SHIFT              0
222         #define QCA_DDR_TAP_CTRL_TAP_MASK               BITS(QCA_DDR_TAP_CTRL_TAP_SHIFT, 6)
223 #endif
224
225 /* DDR_DDR2_CONFIG register (DDR2 configuration) */
226 #define QCA_DDR_DDR2_CFG_DDR2_EN_SHIFT          0
227 #define QCA_DDR_DDR2_CFG_DDR2_EN_MASK           BIT(QCA_DDR_DDR2_CFG_DDR2_EN_SHIFT)
228 #define QCA_DDR_DDR2_CFG_DDR2_TFAW_SHIFT        2
229 #define QCA_DDR_DDR2_CFG_DDR2_TFAW_MASK         BITS(QCA_DDR_DDR2_CFG_DDR2_TFAW_SHIFT, 6)
230 #if (SOC_TYPE & QCA_AR933X_SOC)
231         #define QCA_DDR_DDR2_CFG_DDR2_TWL_SHIFT 10
232         #define QCA_DDR_DDR2_CFG_DDR2_TWL_MASK  BITS(QCA_DDR_DDR2_CFG_DDR2_TWL_SHIFT, 3)
233 #else
234         #define QCA_DDR_DDR2_CFG_DDR2_TWL_SHIFT 10
235         #define QCA_DDR_DDR2_CFG_DDR2_TWL_MASK  BITS(QCA_DDR_DDR2_CFG_DDR2_TWL_SHIFT, 4)
236 #endif
237
238 /* DDR_BURST (DDR bank arbiter per client burst size) */
239 #define QCA_DDR_BURST_GE0_MAX_BL_SHIFT          0
240 #define QCA_DDR_BURST_GE0_MAX_BL_MASK           BITS(QCA_DDR_BURST_GE0_MAX_BL_SHIFT, 4)
241 #define QCA_DDR_BURST_GE1_MAX_BL_SHIFT          4
242 #define QCA_DDR_BURST_GE1_MAX_BL_MASK           BITS(QCA_DDR_BURST_GE1_MAX_BL_SHIFT, 4)
243 #define QCA_DDR_BURST_PCIE_MAX_BL_SHIFT         8
244 #define QCA_DDR_BURST_PCIE_MAX_BL_MASK          BITS(QCA_DDR_BURST_PCIE_MAX_BL_SHIFT, 4)
245 #define QCA_DDR_BURST_USB_MAX_BL_SHIFT          12
246 #define QCA_DDR_BURST_USB_MAX_BL_MASK           BITS(QCA_DDR_BURST_USB_MAX_BL_SHIFT, 4)
247 #define QCA_DDR_BURST_CPU_MAX_BL_SHIFT          16
248 #define QCA_DDR_BURST_CPU_MAX_BL_MASK           BITS(QCA_DDR_BURST_CPU_MAX_BL_SHIFT, 4)
249 #define QCA_DDR_BURST_MAX_READ_BURST_SHIFT      20
250 #define QCA_DDR_BURST_MAX_READ_BURST_MASK       BITS(QCA_DDR_BURST_MAX_READ_BURST_SHIFT, 4)
251 #define QCA_DDR_BURST_MAX_WRITE_BURST_SHIFT     24
252 #define QCA_DDR_BURST_MAX_WRITE_BURST_MASK      BITS(QCA_DDR_BURST_MAX_WRITE_BURST_SHIFT, 4)
253 #define QCA_DDR_BURST_RWP_MASK_EN_SHIFT         28
254 #define QCA_DDR_BURST_RWP_MASK_EN_MASK          BITS(QCA_DDR_BURST_RWP_MASK_EN_SHIFT, 2)
255 #define QCA_DDR_BURST_CPU_PRIO_BE_SHIFT         30
256 #define QCA_DDR_BURST_CPU_PRIO_BE_MASK          BIT(QCA_DDR_BURST_CPU_PRIO_BE_SHIFT)
257 #define QCA_DDR_BURST_CPU_PRIO_SHIFT            31
258 #define QCA_DDR_BURST_CPU_PRIO_MASK             BIT(QCA_DDR_BURST_CPU_PRIO_SHIFT)
259
260 /* DDR_BURST2 (DDR bank arbiter per client burst size 2) */
261 #define QCA_DDR_BURST2_WMAC_MAX_BL_SHIFT        0
262 #define QCA_DDR_BURST2_WMAC_MAX_BL_MASK         BITS(QCA_DDR_BURST2_WMAC_MAX_BL_SHIFT, 4)
263 #define QCA_DDR_BURST2_MISC_SRC1_MAX_BL_SHIFT   4
264 #define QCA_DDR_BURST2_MISC_SRC1_MAX_BL_MASK    BITS(QCA_DDR_BURST2_MISC_SRC1_MAX_BL_SHIFT, 4)
265 #define QCA_DDR_BURST2_MISC_SRC2_MAX_BL_SHIFT   8
266 #define QCA_DDR_BURST2_MISC_SRC2_MAX_BL_MASK    BITS(QCA_DDR_BURST2_MISC_SRC2_MAX_BL_SHIFT, 4)
267
268 /* DDR_CTRL_CFG (DDR controller configuration) */
269 #define QCA_DDR_CTRL_CFG_SDRAM_EN_SHIFT         0
270 #define QCA_DDR_CTRL_CFG_SDRAM_EN_MASK          BIT(QCA_DDR_CTRL_CFG_SDRAM_EN_SHIFT)
271 #define QCA_DDR_CTRL_CFG_HALF_WIDTH_SHIFT       1
272 #define QCA_DDR_CTRL_CFG_HALF_WIDTH_MASK        BIT(QCA_DDR_CTRL_CFG_HALF_WIDTH_SHIFT)
273 #define QCA_DDR_CTRL_CFG_CPU_DDR_SYNC_SHIFT     2
274 #define QCA_DDR_CTRL_CFG_CPU_DDR_SYNC_MASK      BIT(QCA_DDR_CTRL_CFG_CPU_DDR_SYNC_SHIFT)
275 #define QCA_DDR_CTRL_CFG_SRAM_REQ_ACK_SHIFT     3
276 #define QCA_DDR_CTRL_CFG_SRAM_REQ_ACK_MASK      BIT(QCA_DDR_CTRL_CFG_SRAM_REQ_ACK_SHIFT)
277 #define QCA_DDR_CTRL_CFG_SRAM_GATE_CLK_SHIFT    4
278 #define QCA_DDR_CTRL_CFG_SRAM_GATE_CLK_MASK     BIT(QCA_DDR_CTRL_CFG_SRAM_GATE_CLK_SHIFT)
279 #define QCA_DDR_CTRL_CFG_PAD_DDR2_SEL_SHIFT     6
280 #define QCA_DDR_CTRL_CFG_PAD_DDR2_SEL_MASK      BIT(QCA_DDR_CTRL_CFG_PAD_DDR2_SEL_SHIFT)
281
282 /* DDR_CONFIG3 register (DDR DRAM configuration 3) */
283 #define QCA_DDR_CFG3_TRFC_LSB_SHIFT     0
284 #define QCA_DDR_CFG3_TRFC_LSB_MASK      BITS(QCA_DDR_CFG3_TRFC_LSB_SHIFT, 2)
285 #define QCA_DDR_CFG3_TRAS_MSB_SHIFT     2
286 #define QCA_DDR_CFG3_TRAS_MSB_MASK      BIT(QCA_DDR_CFG3_TRAS_MSB_SHIFT)
287 #define QCA_DDR_CFG3_TWR_MSB_SHIFT      3
288 #define QCA_DDR_CFG3_TWR_MSB_MASK       BIT(QCA_DDR_CFG3_TWR_MSB_SHIFT)
289
290 /* DDR_BIST (unknown, not described in datasheet, based on code only) */
291 #define QCA_DDR_BIST_TEST_EN_SHIFT      0
292 #define QCA_DDR_BIST_TEST_EN_MASK       BIT(QCA_DDR_BIST_TEST_EN_SHIFT)
293
294 /* DDR_BIST_STATUS (unknown, not described in datasheet, based on code only) */
295 #define QCA_DDR_BIST_STATUS_DONE_SHIFT          0
296 #define QCA_DDR_BIST_STATUS_DONE_MASK           BIT(QCA_DDR_BIST_STATUS_DONE_SHIFT)
297 #define QCA_DDR_BIST_STATUS_PASS_CNT_SHIFT      1
298 #define QCA_DDR_BIST_STATUS_PASS_CNT_MASK       BITS(QCA_DDR_BIST_STATUS_PASS_CNT_SHIFT, 8)
299 #define QCA_DDR_BIST_STATUS_FAIL_CNT_SHIFT      9
300 #define QCA_DDR_BIST_STATUS_FAIL_CNT_MASK       BITS(QCA_DDR_BIST_STATUS_FAIL_CNT_SHIFT, 8)
301
302 /* DDR_PERF_COMP_ADDR_1 (unknown, not described in datasheet, based on code only) */
303 #define QCA_DDR_PERF_COMP_ADDR_1_TEST_CNT_SHIFT 1
304 #define QCA_DDR_PERF_COMP_ADDR_1_TEST_CNT_MASK  BITS(QCA_DDR_PERF_COMP_ADDR_1_TEST_CNT_SHIFT, 8)
305
306 /*
307  * Low-Speed UART registers
308  */
309 #define QCA_LSUART_RBR_REG      QCA_LSUART_BASE_REG + 0x00
310 #define QCA_LSUART_THR_REG      QCA_LSUART_BASE_REG + 0x00
311 #define QCA_LSUART_DLL_REG      QCA_LSUART_BASE_REG + 0x00
312 #define QCA_LSUART_DLH_REG      QCA_LSUART_BASE_REG + 0x04
313 #define QCA_LSUART_IER_REG      QCA_LSUART_BASE_REG + 0x04
314 #define QCA_LSUART_IIR_REG      QCA_LSUART_BASE_REG + 0x08
315 #define QCA_LSUART_FCR_REG      QCA_LSUART_BASE_REG + 0x08
316 #define QCA_LSUART_LCR_REG      QCA_LSUART_BASE_REG + 0x0C
317 #define QCA_LSUART_MCR_REG      QCA_LSUART_BASE_REG + 0x10
318 #define QCA_LSUART_LSR_REG      QCA_LSUART_BASE_REG + 0x14
319 #define QCA_LSUART_MSR_REG      QCA_LSUART_BASE_REG + 0x18
320
321 /*
322  * Low-Speed UART registers BIT fields
323  */
324
325 /* RBR register (Receive buffer) */
326 #define QCA_LSUART_RBR_RBR_SHIFT        0
327 #define QCA_LSUART_RBR_RBR_MASK         BITS(QCA_LSUART_RBR_RBR_SHIFT, 8)
328
329 /* THR register (Transmit holding) */
330 #define QCA_LSUART_THR_THR_SHIFT        0
331 #define QCA_LSUART_THR_THR_MASK         BITS(QCA_LSUART_THR_THR_SHIFT, 8)
332
333 /* DLL register (Divisor latch low) */
334 #define QCA_LSUART_DLL_DLL_SHIFT        0
335 #define QCA_LSUART_DLL_DLL_MASK         BITS(QCA_LSUART_DLL_DLL_SHIFT, 8)
336
337 /* DLH register (Divisor latch high) */
338 #define QCA_LSUART_DLH_DLH_SHIFT        0
339 #define QCA_LSUART_DLH_DLH_MASK         BITS(QCA_LSUART_DLH_DLH_SHIFT, 8)
340
341 /* IER register (Interrupt enable) */
342 #define QCA_LSUART_IER_ERBFI_SHIFT      0
343 #define QCA_LSUART_IER_ERBFI_MASK       BIT(QCA_LSUART_IER_ERBFI_SHIFT)
344 #define QCA_LSUART_IER_ETBEI_SHIFT      1
345 #define QCA_LSUART_IER_ETBEI_MASK       BIT(QCA_LSUART_IER_ETBEI_SHIFT)
346 #define QCA_LSUART_IER_ELSI_SHIFT       2
347 #define QCA_LSUART_IER_ELSI_MASK        BIT(QCA_LSUART_IER_ELSI_SHIFT)
348 #define QCA_LSUART_IER_EDDSI_SHIFT      3
349 #define QCA_LSUART_IER_EDDSI_MASK       BIT(QCA_LSUART_IER_EDDSI_SHIFT)
350
351 /* IIR register (Interrupt identity) */
352 #define QCA_LSUART_IIR_IID_SHIFT                0
353 #define QCA_LSUART_IIR_IID_MASK                 BITS(QCA_LSUART_IIR_IID_SHIFT, 4)
354 #define QCA_LSUART_IIR_FIFO_STATUS_SHIFT        6
355 #define QCA_LSUART_IIR_FIFO_STATUS_MASK         BITS(QCA_LSUART_IIR_FIFO_STATUS_SHIFT, 2)
356
357 /* FCR register (FIFO control) */
358 #define QCA_LSUART_FCR_FIFO_EN_SHIFT            0
359 #define QCA_LSUART_FCR_EDDSI_MASK               BIT(QCA_LSUART_FCR_FIFO_EN_SHIFT)
360 #define QCA_LSUART_FCR_RCVR_FIFO_RST_SHIFT      1
361 #define QCA_LSUART_FCR_RCVR_FIFO_RST_MASK       BIT(QCA_LSUART_FCR_RCVR_FIFO_RST_SHIFT)
362 #define QCA_LSUART_FCR_XMIT_FIFO_RST_SHIFT      2
363 #define QCA_LSUART_FCR_XMIT_FIFO_RST_MASK       BIT(QCA_LSUART_FCR_XMIT_FIFO_RST_SHIFT)
364 #define QCA_LSUART_FCR_DMA_MODE_SHIFT           3
365 #define QCA_LSUART_FCR_DMA_MODE_MASK            BIT(QCA_LSUART_FCR_DMA_MODE_SHIFT)
366 #define QCA_LSUART_FCR_RCVR_TRIG_SHIFT          6
367 #define QCA_LSUART_FCR_RCVR_TRIG_MASK           BITS(QCA_LSUART_FCR_RCVR_TRIG_SHIFT, 2)
368
369 /* LCR register (Line control) */
370 #define QCA_LSUART_LCR_CLS_SHIFT        0
371 #define QCA_LSUART_LCR_CLS_MASK         BITS(QCA_LSUART_LCR_CLS_SHIFT, 2)
372 #define QCA_LSUART_LCR_CLS_5BIT_VAL     0x0
373 #define QCA_LSUART_LCR_CLS_6BIT_VAL     0x1
374 #define QCA_LSUART_LCR_CLS_7BIT_VAL     0x2
375 #define QCA_LSUART_LCR_CLS_8BIT_VAL     0x3
376 #define QCA_LSUART_LCR_STOP_SHIFT       2
377 #define QCA_LSUART_LCR_STOP_MASK        BIT(QCA_LSUART_LCR_STOP_SHIFT)
378 #define QCA_LSUART_LCR_PEN_SHIFT        3
379 #define QCA_LSUART_LCR_PEN_MASK         BIT(QCA_LSUART_LCR_PEN_SHIFT)
380 #define QCA_LSUART_LCR_EPS_SHIFT        4
381 #define QCA_LSUART_LCR_EPS_MASK         BIT(QCA_LSUART_LCR_EPS_SHIFT)
382 #define QCA_LSUART_LCR_BREAK_SHIFT      6
383 #define QCA_LSUART_LCR_BREAK_MASK       BIT(QCA_LSUART_LCR_BREAK_SHIFT)
384 #define QCA_LSUART_LCR_DLAB_SHIFT       7
385 #define QCA_LSUART_LCR_DLAB_MASK        BIT(QCA_LSUART_LCR_DLAB_SHIFT)
386
387 /* MCR register (Modem control) */
388 #define QCA_LSUART_MCR_DTR_SHIFT        0
389 #define QCA_LSUART_MCR_DTR_MASK         BIT(QCA_LSUART_MCR_DTR_SHIFT)
390 #define QCA_LSUART_MCR_RTS_SHIFT        1
391 #define QCA_LSUART_MCR_RTS_MASK         BIT(QCA_LSUART_MCR_RTS_SHIFT)
392 #define QCA_LSUART_MCR_OUT1_SHIFT       2
393 #define QCA_LSUART_MCR_OUT1_MASK        BIT(QCA_LSUART_MCR_OUT1_SHIFT)
394 #define QCA_LSUART_MCR_OUT2_SHIFT       3
395 #define QCA_LSUART_MCR_OUT2_MASK        BIT(QCA_LSUART_MCR_OUT2_SHIFT)
396 #define QCA_LSUART_MCR_LOOPBACK_SHIFT   5
397 #define QCA_LSUART_MCR_LOOPBACK_MASK    BIT(QCA_LSUART_MCR_LOOPBACK_SHIFT)
398
399 /* LSR register (Line status) */
400 #define QCA_LSUART_LSR_DR_SHIFT         0
401 #define QCA_LSUART_LSR_DR_MASK          BIT(QCA_LSUART_LSR_DR_SHIFT)
402 #define QCA_LSUART_LSR_OE_SHIFT         1
403 #define QCA_LSUART_LSR_OE_MASK          BIT(QCA_LSUART_LSR_OE_SHIFT)
404 #define QCA_LSUART_LSR_PE_SHIFT         2
405 #define QCA_LSUART_LSR_PE_MASK          BIT(QCA_LSUART_LSR_PE_SHIFT)
406 #define QCA_LSUART_LSR_FE_SHIFT         3
407 #define QCA_LSUART_LSR_FE_MASK          BIT(QCA_LSUART_LSR_FE_SHIFT)
408 #define QCA_LSUART_LSR_BI_SHIFT         4
409 #define QCA_LSUART_LSR_BI_MASK          BIT(QCA_LSUART_LSR_BI_SHIFT)
410 #define QCA_LSUART_LSR_THRE_SHIFT       5
411 #define QCA_LSUART_LSR_THRE_MASK        BIT(QCA_LSUART_LSR_THRE_SHIFT)
412 #define QCA_LSUART_LSR_TEMT_SHIFT       6
413 #define QCA_LSUART_LSR_TEMT_MASK        BIT(QCA_LSUART_LSR_TEMT_SHIFT)
414 #define QCA_LSUART_LSR_FERR_SHIFT       7
415 #define QCA_LSUART_LSR_FERR_MASK        BIT(QCA_LSUART_LSR_FERR_SHIFT)
416
417 /* MCR register (Modem status) */
418 #define QCA_LSUART_MCR_DCTS_SHIFT       0
419 #define QCA_LSUART_MCR_DCTS_MASK        BIT(QCA_LSUART_MCR_DCTS_SHIFT)
420 #define QCA_LSUART_MCR_DDSR_SHIFT       1
421 #define QCA_LSUART_MCR_DDSR_MASK        BIT(QCA_LSUART_MCR_DDSR_SHIFT)
422 #define QCA_LSUART_MCR_TERI_SHIFT       2
423 #define QCA_LSUART_MCR_TERI_MASK        BIT(QCA_LSUART_MCR_TERI_SHIFT)
424 #define QCA_LSUART_MCR_DDCD_SHIFT       3
425 #define QCA_LSUART_MCR_DDCD_MASK        BIT(QCA_LSUART_MCR_DDCD_SHIFT)
426 #define QCA_LSUART_MCR_CTS_SHIFT        4
427 #define QCA_LSUART_MCR_CTS_MASK         BIT(QCA_LSUART_MCR_CTS_SHIFT)
428 #define QCA_LSUART_MCR_DSR_SHIFT        5
429 #define QCA_LSUART_MCR_DSR_MASK         BIT(QCA_LSUART_MCR_DSR_SHIFT)
430 #define QCA_LSUART_MCR_RI_SHIFT         6
431 #define QCA_LSUART_MCR_RI_MASK          BIT(QCA_LSUART_MCR_RI_SHIFT)
432 #define QCA_LSUART_MCR_DCD_SHIFT        7
433 #define QCA_LSUART_MCR_DCD_MASK         BIT(QCA_LSUART_MCR_DCD_SHIFT)
434
435 /*
436  * High-Speed UART registers
437  */
438 #define QCA_HSUART_DATA_REG     QCA_HSUART_BASE_REG + 0x00
439 #define QCA_HSUART_CS_REG       QCA_HSUART_BASE_REG + 0x04
440 #define QCA_HSUART_CLK_REG      QCA_HSUART_BASE_REG + 0x08
441 #define QCA_HSUART_INT_REG      QCA_HSUART_BASE_REG + 0x0C
442 #define QCA_HSUART_INT_EN_REG   QCA_HSUART_BASE_REG + 0x10
443
444 /*
445  * High-Speed UART registers BIT fields
446  */
447
448 /* UART_DATA register (UART transmit and RX FIFO interface ) */
449 #define QCA_HSUART_DATA_TX_RX_DATA_SHIFT        0
450 #define QCA_HSUART_DATA_TX_RX_DATA_MASK         BITS(QCA_HSUART_DATA_TX_RX_DATA_SHIFT, 8)
451 #define QCA_HSUART_DATA_RX_CSR_SHIFT            8
452 #define QCA_HSUART_DATA_RX_CSR_MASK             BIT(QCA_HSUART_DATA_RX_CSR_SHIFT)
453 #define QCA_HSUART_DATA_TX_CSR_SHIFT            9
454 #define QCA_HSUART_DATA_TX_CSR_MASK             BIT(QCA_HSUART_DATA_TX_CSR_SHIFT)
455
456 /* UART_CS register (UART configuration and status) */
457 #define QCA_HSUART_CS_PAR_MODE_SHIFT            0
458 #define QCA_HSUART_CS_PAR_MODE_MASK             BITS(QCA_HSUART_CS_PAR_MODE_SHIFT, 2)
459 #define QCA_HSUART_CS_PAR_MODE_NO_VAL           0x0
460 #define QCA_HSUART_CS_PAR_MODE_ODD_VAL          0x2
461 #define QCA_HSUART_CS_PAR_MODE_OVEN_VAL         0x3
462 #define QCA_HSUART_CS_IFACE_MODE_SHIFT          2
463 #define QCA_HSUART_CS_IFACE_MODE_MASK           BITS(QCA_HSUART_CS_IFACE_MODE_SHIFT, 2)
464 #define QCA_HSUART_CS_IFACE_MODE_DISABLE_VAL    0x0
465 #define QCA_HSUART_CS_IFACE_MODE_DTE_VAL        0x1
466 #define QCA_HSUART_CS_IFACE_MODE_DCE_VAL        0x2
467 #define QCA_HSUART_CS_FLOW_MODE_SHIFT           4
468 #define QCA_HSUART_CS_FLOW_MODE_MASK            BITS(QCA_HSUART_CS_FLOW_MODE_SHIFT, 2)
469 #define QCA_HSUART_CS_FLOW_MODE_NO_VAL          0x0
470 #define QCA_HSUART_CS_FLOW_MODE_HW_VAL          0x2
471 #define QCA_HSUART_CS_FLOW_MODE_INV_VAL         0x3
472 #define QCA_HSUART_CS_DMA_EN_SHIFT              6
473 #define QCA_HSUART_CS_DMA_EN_MASK               BIT(QCA_HSUART_CS_DMA_EN_SHIFT)
474 #define QCA_HSUART_CS_RX_READY_ORIDE_SHIFT      7
475 #define QCA_HSUART_CS_RX_READY_ORIDE_MASK       BIT(QCA_HSUART_CS_RX_READY_ORIDE_SHIFT)
476 #define QCA_HSUART_CS_TX_READY_ORIDE_SHIFT      8
477 #define QCA_HSUART_CS_TX_READY_ORIDE_MASK       BIT(QCA_HSUART_CS_TX_READY_ORIDE_SHIFT)
478 #define QCA_HSUART_CS_TX_READY_SHIFT            9
479 #define QCA_HSUART_CS_TX_READY_MASK             BIT(QCA_HSUART_CS_TX_READY_SHIFT)
480 #define QCA_HSUART_CS_RX_BREAK_SHIFT            10
481 #define QCA_HSUART_CS_RX_BREAK_MASK             BIT(QCA_HSUART_CS_RX_BREAK_SHIFT)
482 #define QCA_HSUART_CS_TX_BREAK_SHIFT            11
483 #define QCA_HSUART_CS_TX_BREAK_MASK             BIT(QCA_HSUART_CS_TX_BREAK_SHIFT)
484 #define QCA_HSUART_CS_HOST_INT_SHIFT            12
485 #define QCA_HSUART_CS_HOST_INT_MASK             BIT(QCA_HSUART_CS_HOST_INT_SHIFT)
486 #define QCA_HSUART_CS_HOST_INT_EN_SHIFT         13
487 #define QCA_HSUART_CS_HOST_INT_EN_MASK          BIT(QCA_HSUART_CS_HOST_INT_EN_SHIFT)
488 #define QCA_HSUART_CS_TX_BUSY_SHIFT             14
489 #define QCA_HSUART_CS_TX_BUSY_MASK              BIT(QCA_HSUART_CS_TX_BUSY_SHIFT)
490 #define QCA_HSUART_CS_RX_BUSY_SHIFT             15
491 #define QCA_HSUART_CS_RX_BUSY_MASK              BIT(QCA_HSUART_CS_RX_BUSY_SHIFT)
492
493 /* UART_CLOCK register (UART clock) */
494 #define QCA_HSUART_CLK_STEP_SHIFT       0
495 #define QCA_HSUART_CLK_STEP_MASK        BITS(QCA_HSUART_CLK_STEP_SHIFT, 16)
496 #define QCA_HSUART_CLK_STEP_MAX_VAL     0x3333
497 #define QCA_HSUART_CLK_SCALE_SHIFT      16
498 #define QCA_HSUART_CLK_SCALE_MASK       BITS(QCA_HSUART_CLK_SCALE_SHIFT, 8)
499 #define QCA_HSUART_CLK_SCALE_MAX_VAL    0xFF
500
501 /* UART_INT register (UART interrupt/control status) */
502 #define QCA_HSUART_INT_RX_VALID_SHIFT           0
503 #define QCA_HSUART_INT_RX_VALID_MASK            BIT(QCA_HSUART_INT_RX_VALID_SHIFT)
504 #define QCA_HSUART_INT_TX_READY_SHIFT           1
505 #define QCA_HSUART_INT_TX_READY_MASK            BIT(QCA_HSUART_INT_TX_READY_SHIFT)
506 #define QCA_HSUART_INT_RX_FRAMING_ERR_SHIFT     2
507 #define QCA_HSUART_INT_RX_FRAMING_ERR_MASK      BIT(QCA_HSUART_INT_RX_FRAMING_ERR_SHIFT)
508 #define QCA_HSUART_INT_RX_OVERFLOW_ERR_SHIFT    3
509 #define QCA_HSUART_INT_RX_OVERFLOW_ERR_MASK     BIT(QCA_HSUART_INT_RX_OVERFLOW_ERR_SHIFT)
510 #define QCA_HSUART_INT_TX_OVERFLOW_ERR_SHIFT    4
511 #define QCA_HSUART_INT_TX_OVERFLOW_ERR_MASK     BIT(QCA_HSUART_INT_TX_OVERFLOW_ERR_SHIFT)
512 #define QCA_HSUART_INT_RX_PARITY_ERR_SHIFT      5
513 #define QCA_HSUART_INT_RX_PARITY_ERR_MASK       BIT(QCA_HSUART_INT_RX_PARITY_ERR_SHIFT)
514 #define QCA_HSUART_INT_RX_BREAK_ON_SHIFT        6
515 #define QCA_HSUART_INT_RX_BREAK_ON_MASK         BIT(QCA_HSUART_INT_RX_BREAK_ON_SHIFT)
516 #define QCA_HSUART_INT_RX_BREAK_OFF_SHIFT       7
517 #define QCA_HSUART_INT_RX_BREAK_OFF_MASK        BIT(QCA_HSUART_INT_RX_BREAK_OFF_SHIFT)
518 #define QCA_HSUART_INT_RX_FULL_SHIFT            8
519 #define QCA_HSUART_INT_RX_FULL_MASK             BIT(QCA_HSUART_INT_RX_FULL_SHIFT)
520 #define QCA_HSUART_INT_TX_EMPTY_SHIFT           9
521 #define QCA_HSUART_INT_TX_EMPTY_MASK            BIT(QCA_HSUART_INT_TX_EMPTY_SHIFT)
522
523 /* UART_INT_EN register (UART interrupt enable) */
524 #define QCA_HSUART_INT_EN_RX_VALID_SHIFT        0
525 #define QCA_HSUART_INT_EN_RX_VALID_MASK         BIT(QCA_HSUART_INT_EN_RX_VALID_SHIFT)
526 #define QCA_HSUART_INT_EN_TX_READY_SHIFT        1
527 #define QCA_HSUART_INT_EN_TX_READY_MASK         BIT(QCA_HSUART_INT_EN_TX_READY_SHIFT)
528 #define QCA_HSUART_INT_EN_RX_FRAMING_ERR_SHIFT  2
529 #define QCA_HSUART_INT_EN_RX_FRAMING_ERR_MASK   BIT(QCA_HSUART_INT_EN_RX_FRAMING_ERR_SHIFT)
530 #define QCA_HSUART_INT_EN_RX_OVERFLOW_ERR_SHIFT 3
531 #define QCA_HSUART_INT_EN_RX_OVERFLOW_ERR_MASK  BIT(QCA_HSUART_INT_EN_RX_OVERFLOW_ERR_SHIFT)
532 #define QCA_HSUART_INT_EN_TX_OVERFLOW_ERR_SHIFT 4
533 #define QCA_HSUART_INT_EN_TX_OVERFLOW_ERR_MASK  BIT(QCA_HSUART_INT_EN_TX_OVERFLOW_ERR_SHIFT)
534 #define QCA_HSUART_INT_EN_RX_PARITY_ERR_SHIFT   5
535 #define QCA_HSUART_INT_EN_RX_PARITY_ERR_MASK    BIT(QCA_HSUART_INT_EN_RX_PARITY_ERR_SHIFT)
536 #define QCA_HSUART_INT_EN_RX_BREAK_ON_SHIFT     6
537 #define QCA_HSUART_INT_EN_RX_BREAK_ON_MASK      BIT(QCA_HSUART_INT_EN_RX_BREAK_ON_SHIFT)
538 #define QCA_HSUART_INT_EN_RX_BREAK_OFF_SHIFT    7
539 #define QCA_HSUART_INT_EN_RX_BREAK_OFF_MASK     BIT(QCA_HSUART_INT_EN_RX_BREAK_OFF_SHIFT)
540 #define QCA_HSUART_INT_EN_RX_FULL_SHIFT         8
541 #define QCA_HSUART_INT_EN_RX_FULL_MASK          BIT(QCA_HSUART_INT_EN_RX_FULL_SHIFT)
542 #define QCA_HSUART_INT_EN_TX_EMPTY_SHIFT        9
543 #define QCA_HSUART_INT_EN_TX_EMPTY_MASK         BIT(QCA_HSUART_INT_EN_TX_EMPTY_SHIFT)
544
545
546 /*
547  * GPIO registers
548  */
549 #if (SOC_TYPE & QCA_AR933X_SOC)
550         #define QCA_GPIO_COUNT  30
551 #elif (SOC_TYPE & QCA_AR934X_SOC)
552         #define QCA_GPIO_COUNT  23
553 #elif (SOC_TYPE & QCA_QCA953X_SOC)
554         #define QCA_GPIO_COUNT  18
555 #elif (SOC_TYPE & QCA_QCA955X_SOC)
556         #define QCA_GPIO_COUNT  24
557 #endif
558
559 #define QCA_GPIO_OE_REG                 QCA_GPIO_BASE_REG + 0x00
560 #define QCA_GPIO_IN_REG                 QCA_GPIO_BASE_REG + 0x04
561 #define QCA_GPIO_OUT_REG                QCA_GPIO_BASE_REG + 0x08
562 #define QCA_GPIO_SET_REG                QCA_GPIO_BASE_REG + 0x0C
563 #define QCA_GPIO_CLEAR_REG              QCA_GPIO_BASE_REG + 0x10
564 #define QCA_GPIO_INT_EN_REG             QCA_GPIO_BASE_REG + 0x14
565 #define QCA_GPIO_INT_TYPE_REG           QCA_GPIO_BASE_REG + 0x18
566 #define QCA_GPIO_INT_POLARITY_REG       QCA_GPIO_BASE_REG + 0x1C
567 #define QCA_GPIO_INT_PENDING_REG        QCA_GPIO_BASE_REG + 0x20
568 #define QCA_GPIO_INT_MASK_REG           QCA_GPIO_BASE_REG + 0x24
569
570 #if (SOC_TYPE & QCA_AR933X_SOC)
571         #define QCA_GPIO_FUNC_1_REG                     QCA_GPIO_BASE_REG + 0x28
572         #define QCA_GPIO_IN_ETH_SWITCH_LED_REG          QCA_GPIO_BASE_REG + 0x2C
573         #define QCA_GPIO_FUNC_2_REG                     QCA_GPIO_BASE_REG + 0x30
574         #define QCA_GPIO_WLAN_MUX_SET0_REG              QCA_GPIO_BASE_REG + 0x34
575         #define QCA_GPIO_WLAN_MUX_SET1_REG              QCA_GPIO_BASE_REG + 0x38
576         #define QCA_GPIO_WLAN_MUX_SET2_REG              QCA_GPIO_BASE_REG + 0x3C
577         #define QCA_GPIO_WLAN_MUX_SET3_REG              QCA_GPIO_BASE_REG + 0x40
578 #else
579         #if (SOC_TYPE & QCA_QCA955X_SOC)
580                 #define QCA_GPIO_SPARE_BITS_REG         QCA_GPIO_BASE_REG + 0x28
581         #else
582                 #define QCA_GPIO_IN_ETH_SWITCH_LED_REG  QCA_GPIO_BASE_REG + 0x28
583         #endif
584
585         #define QCA_GPIO_OUT_FUNC0_REG                  QCA_GPIO_BASE_REG + 0x2C
586         #define QCA_GPIO_OUT_FUNC1_REG                  QCA_GPIO_BASE_REG + 0x30
587         #define QCA_GPIO_OUT_FUNC2_REG                  QCA_GPIO_BASE_REG + 0x34
588         #define QCA_GPIO_OUT_FUNC3_REG                  QCA_GPIO_BASE_REG + 0x38
589         #define QCA_GPIO_OUT_FUNC4_REG                  QCA_GPIO_BASE_REG + 0x3C
590         #define QCA_GPIO_OUT_FUNC5_REG                  QCA_GPIO_BASE_REG + 0x40
591         #define QCA_GPIO_IN_EN0_REG                     QCA_GPIO_BASE_REG + 0x44
592         #define QCA_GPIO_IN_EN1_REG                     QCA_GPIO_BASE_REG + 0x48
593         #define QCA_GPIO_IN_EN2_REG                     QCA_GPIO_BASE_REG + 0x4C
594         #define QCA_GPIO_IN_EN3_REG                     QCA_GPIO_BASE_REG + 0x50
595         #define QCA_GPIO_IN_EN4_REG                     QCA_GPIO_BASE_REG + 0x54
596         #define QCA_GPIO_IN_EN9_REG                     QCA_GPIO_BASE_REG + 0x68
597         #define QCA_GPIO_FUNC_REG                       QCA_GPIO_BASE_REG + 0x6C
598 #endif
599
600 /*
601  * GPIO registers BIT fields
602  */
603
604 /* GPIO_FUNCTION_1/2 register (GPIO function) */
605 #if (SOC_TYPE & QCA_AR933X_SOC)
606         #define QCA_GPIO_FUNC_1_JTAG_DIS_SHIFT          0
607         #define QCA_GPIO_FUNC_1_JTAG_DIS_MASK           BIT(QCA_GPIO_FUNC_1_JTAG_DIS_SHIFT)
608         #define QCA_GPIO_FUNC_1_UART_EN_SHIFT           1
609         #define QCA_GPIO_FUNC_1_UART_EN_MASK            BIT(QCA_GPIO_FUNC_1_UART_EN_SHIFT)
610         #define QCA_GPIO_FUNC_1_UART_RTS_CTS_EN_SHIFT   2
611         #define QCA_GPIO_FUNC_1_UART_RTS_CTS_EN_MASK    BIT(QCA_GPIO_FUNC_1_UART_RTS_CTS_EN_SHIFT)
612         #define QCA_GPIO_FUNC_1_ETH_SW_LED0_EN_SHIFT    3
613         #define QCA_GPIO_FUNC_1_ETH_SW_LED0_EN_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED0_EN_SHIFT)
614         #define QCA_GPIO_FUNC_1_ETH_SW_LED1_EN_SHIFT    4
615         #define QCA_GPIO_FUNC_1_ETH_SW_LED1_EN_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED1_EN_SHIFT)
616         #define QCA_GPIO_FUNC_1_ETH_SW_LED2_EN_SHIFT    5
617         #define QCA_GPIO_FUNC_1_ETH_SW_LED2_EN_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED2_EN_SHIFT)
618         #define QCA_GPIO_FUNC_1_ETH_SW_LED3_EN_SHIFT    6
619         #define QCA_GPIO_FUNC_1_ETH_SW_LED3_EN_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED3_EN_SHIFT)
620         #define QCA_GPIO_FUNC_1_ETH_SW_LED4_EN_SHIFT    7
621         #define QCA_GPIO_FUNC_1_ETH_SW_LED4_EN_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED4_EN_SHIFT)
622         #define QCA_GPIO_FUNC_1_SPI_CS_EN1_SHIFT        13
623         #define QCA_GPIO_FUNC_1_SPI_CS_EN1_MASK         BIT(QCA_GPIO_FUNC_1_SPI_CS_EN1_SHIFT)
624         #define QCA_GPIO_FUNC_1_SPI_CS_EN2_SHIFT        14
625         #define QCA_GPIO_FUNC_1_SPI_CS_EN2_MASK         BIT(QCA_GPIO_FUNC_1_SPI_CS_EN2_SHIFT)
626         #define QCA_GPIO_FUNC_1_SPI_EN_SHIFT            18
627         #define QCA_GPIO_FUNC_1_SPI_EN_MASK             BIT(QCA_GPIO_FUNC_1_SPI_EN_SHIFT)
628         #define QCA_GPIO_FUNC_1_ETH_SW_LED_ACT_SHIFT    23
629         #define QCA_GPIO_FUNC_1_ETH_SW_LED_ACT_MASK     BIT(QCA_GPIO_FUNC_1_ETH_SW_LED_ACT_SHIFT)
630         #define QCA_GPIO_FUNC_1_ETH_SW_LED_COLL_SHIFT   24
631         #define QCA_GPIO_FUNC_1_ETH_SW_LED_COLL_MASK    BIT(QCA_GPIO_FUNC_1_ETH_SW_LED_COLL_SHIFT)
632         #define QCA_GPIO_FUNC_1_ETH_SW_LED_DUPL_SHIFT   25
633         #define QCA_GPIO_FUNC_1_ETH_SW_LED_DUPL_MASK    BIT(QCA_GPIO_FUNC_1_ETH_SW_LED_DUPL_SHIFT)
634         #define QCA_GPIO_FUNC_1_I2S_EN_SHIFT            26
635         #define QCA_GPIO_FUNC_1_I2S_EN_MASK             BIT(QCA_GPIO_FUNC_1_I2S_EN_SHIFT)
636         #define QCA_GPIO_FUNC_1_I2S_MCLK_EN_SHIFT       27
637         #define QCA_GPIO_FUNC_1_I2S_MCLK_EN_MASK        BIT(QCA_GPIO_FUNC_1_I2S_MCLK_EN_SHIFT)
638         #define QCA_GPIO_FUNC_1_I2S_22_18_EN_SHIFT      29
639         #define QCA_GPIO_FUNC_1_I2S_22_18_EN_MASK       BIT(QCA_GPIO_FUNC_1_I2S_22_18_EN_SHIFT)
640         #define QCA_GPIO_FUNC_1_SPDIF_EN_SHIFT          30
641         #define QCA_GPIO_FUNC_1_SPDIF_EN_MASK           BIT(QCA_GPIO_FUNC_1_SPDIF_EN_SHIFT)
642         #define QCA_GPIO_FUNC_1_SPDIF_TCK_EN_SHIFT      31
643         #define QCA_GPIO_FUNC_1_SPDIF_TCK_EN_MASK       BIT(QCA_GPIO_FUNC_1_SPDIF_TCK_EN_SHIFT)
644
645         #define QCA_GPIO_FUNC_2_MIC_DIS_SHIFT           0
646         #define QCA_GPIO_FUNC_2_MIC_DIS_MASK            BIT(QCA_GPIO_FUNC_2_MIC_DIS_SHIFT)
647         #define QCA_GPIO_FUNC_2_I2S_ON_LED_SHIFT        1
648         #define QCA_GPIO_FUNC_2_I2S_ON_LED_MASK         BIT(QCA_GPIO_FUNC_2_I2S_ON_LED_SHIFT)
649         #define QCA_GPIO_FUNC_2_SPDIF_ON23_SHIFT        2
650         #define QCA_GPIO_FUNC_2_SPDIF_ON23_MASK         BIT(QCA_GPIO_FUNC_2_SPDIF_ON23_SHIFT)
651         #define QCA_GPIO_FUNC_2_I2SCK_ON1_SHIFT         3
652         #define QCA_GPIO_FUNC_2_I2SCK_ON1_MASK          BIT(QCA_GPIO_FUNC_2_I2SCK_ON1_SHIFT)
653         #define QCA_GPIO_FUNC_2_I2SWS_ON0_SHIFT         4
654         #define QCA_GPIO_FUNC_2_I2SWS_ON0_MASK          BIT(QCA_GPIO_FUNC_2_I2SWS_ON0_SHIFT)
655         #define QCA_GPIO_FUNC_2_I2SSD_ON12_SHIFT        5
656         #define QCA_GPIO_FUNC_2_I2SSD_ON12_MASK         BIT(QCA_GPIO_FUNC_2_I2SSD_ON12_SHIFT)
657         #define QCA_GPIO_FUNC_2_WPS_DIS_SHIFT           8
658         #define QCA_GPIO_FUNC_2_WPS_DIS_MASK            BIT(QCA_GPIO_FUNC_2_WPS_DIS_SHIFT)
659         #define QCA_GPIO_FUNC_2_JUMPSTART_DIS_SHIFT     9
660         #define QCA_GPIO_FUNC_2_JUMPSTART_DIS_MASK      BIT(QCA_GPIO_FUNC_2_JUMPSTART_DIS_SHIFT)
661         #define QCA_GPIO_FUNC_2_WLAN_LED_ON0_SHIFT      10
662         #define QCA_GPIO_FUNC_2_WLAN_LED_ON0_MASK       BIT(QCA_GPIO_FUNC_2_WLAN_LED_ON0_SHIFT)
663         #define QCA_GPIO_FUNC_2_USB_LED_ON1_SHIFT       11
664         #define QCA_GPIO_FUNC_2_USB_LED_ON1_MASK        BIT(QCA_GPIO_FUNC_2_USB_LED_ON1_SHIFT)
665         #define QCA_GPIO_FUNC_2_LNA_ON28_SHIFT          12
666         #define QCA_GPIO_FUNC_2_LNA_ON28_MASK           BIT(QCA_GPIO_FUNC_2_LNA_ON28_SHIFT)
667         #define QCA_GPIO_FUNC_2_SLIC_EN_SHIFT           13
668         #define QCA_GPIO_FUNC_2_SLIC_EN_MASK            BIT(QCA_GPIO_FUNC_2_SLIC_EN_SHIFT)
669         #define QCA_GPIO_FUNC_2_SLIC_ON18_22_SHIFT      14
670         #define QCA_GPIO_FUNC_2_SLIC_ON18_22_MASK       BIT(QCA_GPIO_FUNC_2_SLIC_ON18_22_SHIFT)
671         #define QCA_GPIO_FUNC_2_SLIC_DIO_MUX_EN_SHIFT   15
672         #define QCA_GPIO_FUNC_2_SLIC_DIO_MUX_EN_MASK    BIT(QCA_GPIO_FUNC_2_SLIC_DIO_MUX_EN_SHIFT)
673         #define QCA_GPIO_FUNC_2_MDIO_SLAVE_ADDR_SHIFT   16
674         #define QCA_GPIO_FUNC_2_MDIO_SLAVE_ADDR_MASK    BITS(QCA_GPIO_FUNC_2_MDIO_SLAVE_ADDR_SHIFT, 3)
675 #endif
676
677 /*
678  * GPIO MUX
679  */
680 #define QCA_GPIO_OUT_FUNCX_GPIOX_EN_SHIFT(_gpio)        ((_gpio % 4) * 8)
681 #define QCA_GPIO_OUT_FUNCX_GPIOX_EN_MASK(_gpio)         BIT(((_gpio % 4) * 8), 8)
682
683 #define QCA_GPIO_OUT_FUNCX_GPIO0_EN_SHIFT       0
684 #define QCA_GPIO_OUT_FUNCX_GPIO4_EN_SHIFT       0
685 #define QCA_GPIO_OUT_FUNCX_GPIO8_EN_SHIFT       0
686 #define QCA_GPIO_OUT_FUNCX_GPIO12_EN_SHIFT      0
687 #define QCA_GPIO_OUT_FUNCX_GPIO16_EN_SHIFT      0
688 #define QCA_GPIO_OUT_FUNCX_GPIO20_EN_SHIFT      0
689 #define QCA_GPIO_OUT_FUNCX_GPIO0_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO0_EN_SHIFT, 8)
690 #define QCA_GPIO_OUT_FUNCX_GPIO4_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO4_EN_SHIFT, 8)
691 #define QCA_GPIO_OUT_FUNCX_GPIO8_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO8_EN_SHIFT, 8)
692 #define QCA_GPIO_OUT_FUNCX_GPIO12_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO12_EN_SHIFT, 8)
693 #define QCA_GPIO_OUT_FUNCX_GPIO16_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO16_EN_SHIFT, 8)
694 #define QCA_GPIO_OUT_FUNCX_GPIO20_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO20_EN_SHIFT, 8)
695
696 #define QCA_GPIO_OUT_FUNCX_GPIO1_EN_SHIFT       8
697 #define QCA_GPIO_OUT_FUNCX_GPIO5_EN_SHIFT       8
698 #define QCA_GPIO_OUT_FUNCX_GPIO9_EN_SHIFT       8
699 #define QCA_GPIO_OUT_FUNCX_GPIO13_EN_SHIFT      8
700 #define QCA_GPIO_OUT_FUNCX_GPIO17_EN_SHIFT      8
701 #define QCA_GPIO_OUT_FUNCX_GPIO21_EN_SHIFT      8
702 #define QCA_GPIO_OUT_FUNCX_GPIO1_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO1_EN_SHIFT, 8)
703 #define QCA_GPIO_OUT_FUNCX_GPIO5_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO5_EN_SHIFT, 8)
704 #define QCA_GPIO_OUT_FUNCX_GPIO9_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO9_EN_SHIFT, 8)
705 #define QCA_GPIO_OUT_FUNCX_GPIO13_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO13_EN_SHIFT, 8)
706 #define QCA_GPIO_OUT_FUNCX_GPIO17_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO17_EN_SHIFT, 8)
707 #define QCA_GPIO_OUT_FUNCX_GPIO21_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO21_EN_SHIFT, 8)
708
709 #define QCA_GPIO_OUT_FUNCX_GPIO2_EN_SHIFT       16
710 #define QCA_GPIO_OUT_FUNCX_GPIO6_EN_SHIFT       16
711 #define QCA_GPIO_OUT_FUNCX_GPIO10_EN_SHIFT      16
712 #define QCA_GPIO_OUT_FUNCX_GPIO14_EN_SHIFT      16
713 #define QCA_GPIO_OUT_FUNCX_GPIO18_EN_SHIFT      16
714 #define QCA_GPIO_OUT_FUNCX_GPIO22_EN_SHIFT      16
715 #define QCA_GPIO_OUT_FUNCX_GPIO2_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO2_EN_SHIFT, 8)
716 #define QCA_GPIO_OUT_FUNCX_GPIO6_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO6_EN_SHIFT, 8)
717 #define QCA_GPIO_OUT_FUNCX_GPIO10_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO10_EN_SHIFT, 8)
718 #define QCA_GPIO_OUT_FUNCX_GPIO14_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO14_EN_SHIFT, 8)
719 #define QCA_GPIO_OUT_FUNCX_GPIO18_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO18_EN_SHIFT, 8)
720 #define QCA_GPIO_OUT_FUNCX_GPIO22_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO22_EN_SHIFT, 8)
721
722 #define QCA_GPIO_OUT_FUNCX_GPIO3_EN_SHIFT       24
723 #define QCA_GPIO_OUT_FUNCX_GPIO7_EN_SHIFT       24
724 #define QCA_GPIO_OUT_FUNCX_GPIO11_EN_SHIFT      24
725 #define QCA_GPIO_OUT_FUNCX_GPIO15_EN_SHIFT      24
726 #define QCA_GPIO_OUT_FUNCX_GPIO19_EN_SHIFT      24
727 #define QCA_GPIO_OUT_FUNCX_GPIO23_EN_SHIFT      24
728 #define QCA_GPIO_OUT_FUNCX_GPIO3_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO3_EN_SHIFT, 8)
729 #define QCA_GPIO_OUT_FUNCX_GPIO7_EN_MASK        BITS(QCA_GPIO_OUT_FUNCX_GPIO7_EN_SHIFT, 8)
730 #define QCA_GPIO_OUT_FUNCX_GPIO11_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO11_EN_SHIFT, 8)
731 #define QCA_GPIO_OUT_FUNCX_GPIO15_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO15_EN_SHIFT, 8)
732 #define QCA_GPIO_OUT_FUNCX_GPIO19_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO19_EN_SHIFT, 8)
733 #define QCA_GPIO_OUT_FUNCX_GPIO23_EN_MASK       BITS(QCA_GPIO_OUT_FUNCX_GPIO23_EN_SHIFT, 8)
734
735 /* GPIO output select values (for MUX) */
736 #define QCA_GPIO_OUT_MUX_GPIO_VAL               0
737 #define QCA_GPIO_OUT_MUX_MII_EXT_MDI_VAL        1
738 #define QCA_GPIO_OUT_MUX_SYS_RST_L_VAL          1
739 #define QCA_GPIO_OUT_MUX_NAND_CS0_VAL           1
740 #define QCA_GPIO_OUT_MUX_BOOT_RXT_MDI_VAL       2
741 #define QCA_GPIO_OUT_MUX_SPI_CS0_VAL            9
742
743 /* 5-port ethernet switch activity LEDs */
744 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN1_VAL   26
745 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN2_VAL   27
746 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN3_VAL   28
747 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN4_VAL   29
748 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN5_VAL   30
749
750 /* 5-port ethernet switch collision detect LEDs */
751 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN1_VAL   31
752 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN2_VAL   32
753 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN3_VAL   33
754 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN4_VAL   34
755 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN5_VAL   35
756
757 /* 5-port ethernet switch full/half duplex LEDs */
758 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN1_VAL   36
759 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN2_VAL   37
760 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN3_VAL   38
761 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN4_VAL   39
762 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN5_VAL   40
763
764 /* 5-port ethernet switch link indicator LEDs */
765 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK1_VAL   41
766 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK2_VAL   42
767 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK3_VAL   43
768 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK4_VAL   44
769 #define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK5_VAL   45
770
771 #if (SOC_TYPE & QCA_AR934X_SOC)
772         #define QCA_GPIO_OUT_MUX_SLIC_DATA_OUT_VAL                      4
773         #define QCA_GPIO_OUT_MUX_SLIC_PCM_FS_VAL                        5
774         #define QCA_GPIO_OUT_MUX_SLIC_PCM_CLK_VAL                       6
775         #define QCA_GPIO_OUT_MUX_SPI_CS1_VAL                            7
776         #define QCA_GPIO_OUT_MUX_SPI_CS2_VAL                            8
777         #define QCA_GPIO_OUT_MUX_SPI_CLK_VAL                            10
778         #define QCA_GPIO_OUT_MUX_SPI_MOSI_VAL                           11
779         #define QCA_GPIO_OUT_MUX_I2S_CLK_VAL                            12
780         #define QCA_GPIO_OUT_MUX_I2S_WS_VAL                             13
781         #define QCA_GPIO_OUT_MUX_I2S_SD_VAL                             14
782         #define QCA_GPIO_OUT_MUX_I2S_MCLK_VAL                           15
783         #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL                           16
784         #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL                           17
785         #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL                           18
786         #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL                           19
787         #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL                           20
788         #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL                           21
789         #define QCA_GPIO_OUT_MUX_CLK_OBS6_VAL                           22
790         #define QCA_GPIO_OUT_MUX_CLK_OBS7_VAL                           23
791         #define QCA_GPIO_OUT_MUX_LSUART_TXD_VAL                         24
792         #define QCA_GPIO_OUT_MUX_SPDIF_OUT_VAL                          25
793         #define QCA_GPIO_OUT_MUX_ATT_LED_VAL                            46
794         #define QCA_GPIO_OUT_MUX_PWR_LED_VAL                            47
795         #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL                           48
796         #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXT_VAL                       49
797         #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL                     50
798         #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL                       51
799         #define QCA_GPIO_OUT_MUX_WMAC_GLUE_WOW_VAL                      72
800         #define QCA_GPIO_OUT_MUX_BT_ANT_VAL                             73
801         #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL                 74
802         #define QCA_GPIO_OUT_MUX_ETH_TX_ERR_VAL                         78
803         #define QCA_GPIO_OUT_MUX_HSUART_TXD_VAL_VAL                     79
804         #define QCA_GPIO_OUT_MUX_HSUART_RTS_VAL_VAL                     80
805         #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL                          84
806         #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL                        87
807 #else
808         #define QCA_GPIO_OUT_MUX_SLIC_DATA_OUT_VAL                      3
809         #define QCA_GPIO_OUT_MUX_SLIC_PCM_FS_VAL                        4
810         #define QCA_GPIO_OUT_MUX_SLIC_PCM_CLK_VAL                       5
811         #define QCA_GPIO_OUT_MUX_SPI_CLK_VAL                            8
812         #define QCA_GPIO_OUT_MUX_SPI_CS1_VAL                            10
813         #define QCA_GPIO_OUT_MUX_SPI_CS2_VAL                            11
814         #define QCA_GPIO_OUT_MUX_SPI_MOSI_VAL                           12
815         #define QCA_GPIO_OUT_MUX_I2S_CLK_VAL                            13
816         #define QCA_GPIO_OUT_MUX_I2S_WS_VAL                             14
817         #define QCA_GPIO_OUT_MUX_I2S_SD_VAL                             15
818         #define QCA_GPIO_OUT_MUX_I2S_MCLK_VAL                           16
819         #define QCA_GPIO_OUT_MUX_SPDIF_OUT_VAL                          17
820         #define QCA_GPIO_OUT_MUX_HSUART_TXD_VAL                         18
821         #define QCA_GPIO_OUT_MUX_HSUART_RTS_VAL                         19
822         #define QCA_GPIO_OUT_MUX_HSUART_RXD_VAL                         20      /* TODO: RXD is INPUT, mistake in QCA9558 datasheet? */
823         #define QCA_GPIO_OUT_MUX_HSUART_CTS_VAL                         21      /* TODO: CTS is INPUT, mistake in QCA9558 datasheet? */
824         #define QCA_GPIO_OUT_MUX_LSUART_TXD_VAL                         22
825         #define QCA_GPIO_OUT_MUX_SRIF_OUT_VAL                           23
826
827         #if (SOC_TYPE & QCA_QCA955X_SOC)
828                 #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED0_VAL           24
829                 #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED1_VAL           25
830                 #define QCA_GPIO_OUT_MUX_SGMII_LED_DUPLEX_VAL           26
831                 #define QCA_GPIO_OUT_MUX_SGMII_LED_LINKUP_VAL           27
832                 #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED0_INV_VAL       28
833                 #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED1_INV_VAL       29
834                 #define QCA_GPIO_OUT_MUX_SGMII_LED_DUPLEX_INV_VAL       30
835                 #define QCA_GPIO_OUT_MUX_SGMII_LED_LINKUP_INV_VAL       31
836                 #define QCA_GPIO_OUT_MUX_GE1_MII_MDO_VAL                32
837                 #define QCA_GPIO_OUT_MUX_GE1_MII_MDC_VAL                33
838                 #define QCA_GPIO_OUT_MUX_SWCOM2_VAL                     38
839                 #define QCA_GPIO_OUT_MUX_SWCOM3_VAL                     39
840                 #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT2_VAL        40
841                 #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT3_VAL        41
842                 #define QCA_GPIO_OUT_MUX_ATT_LED_VAL                    42
843                 #define QCA_GPIO_OUT_MUX_PWR_LED_VAL                    43
844                 #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL                   44
845                 #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXT_VAL               45
846                 #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL             46
847                 #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL               47
848                 #define QCA_GPIO_OUT_MUX_WMAC_GLUE_WOW_VAL              68
849                 #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL         70
850                 #define QCA_GPIO_OUT_MUX_SMART_ANT_SHIFT_STROBE_VAL     71
851                 #define QCA_GPIO_OUT_MUX_SMART_ANT_SHIFT_DATA_VAL       72
852                 #define QCA_GPIO_OUT_MUX_NAND_CS1_VAL                   73
853                 #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL                74
854                 #define QCA_GPIO_OUT_MUX_ETH_TX_ERR_VAL                 75
855                 #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL                  76
856                 #define QCA_GPIO_OUT_MUX_CLK_REQ_N_EP_VAL               77
857                 #define QCA_GPIO_OUT_MUX_CLK_REQ_N_RC_VAL               78
858                 #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL                   79
859                 #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL                   80
860                 #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL                   81
861                 #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL                   82
862                 #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL                   83
863                 #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL                   84
864         #endif
865
866         #if (SOC_TYPE & QCA_QCA953X_SOC)
867                 #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT2_VAL        48
868                 #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT3_VAL        49
869                 #define QCA_GPIO_OUT_MUX_ATT_LED_VAL                    50
870                 #define QCA_GPIO_OUT_MUX_PWR_LED_VAL                    51
871                 #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL                   52
872                 #define QCA_GPIO_OUT_MUX_RX_CLEAR_INT_VAL               53
873                 #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL             54
874                 #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL               55
875                 #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL         78
876                 #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL                86
877                 #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL                  88
878                 #define QCA_GPIO_OUT_MUX_CLK_REQ_N_RC_VAL               89
879                 #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL                   90
880                 #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL                   91
881                 #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL                   92
882                 #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL                   93
883                 #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL                   94
884                 #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL                   95
885                 #define QCA_GPIO_OUT_MUX_CLK_OBS6_VAL                   96
886         #endif
887 #endif
888
889 /* GPIO_IN_ENABLE0 register (GPIO in signals 0) */
890 #define QCA_GPIO_IN_EN0_SPI_MISO_SHIFT          0
891 #define QCA_GPIO_IN_EN0_SPI_MISO_MASK           BITS(QCA_GPIO_IN_EN0_SPI_MISO_SHIFT, 8)
892 #define QCA_GPIO_IN_EN0_LSUART_RXD_SHIFT        8
893 #define QCA_GPIO_IN_EN0_LSUART_RXD_MASK         BITS(QCA_GPIO_IN_EN0_LSUART_RXD_SHIFT ,8)
894
895 /* GPIO_IN_ENABLE1 register (GPIO in signals 1) */
896 #define QCA_GPIO_IN_EN1_I2S_WS_SHIFT            0
897 #define QCA_GPIO_IN_EN1_I2S_WS_MASK             BITS(QCA_GPIO_IN_EN1_I2S_WS_SHIFT ,8)
898 #define QCA_GPIO_IN_EN1_I2S_MIC_SD_SHIFT        8
899 #define QCA_GPIO_IN_EN1_I2S_MIC_SD_MASK         BITS(QCA_GPIO_IN_EN1_I2S_MIC_SD_SHIFT ,8)
900 #define QCA_GPIO_IN_EN1_I2S_CLK_SHIFT           16
901 #define QCA_GPIO_IN_EN1_I2S_CLK_MASK            BITS(QCA_GPIO_IN_EN1_I2S_CLK_SHIFT ,8)
902 #define QCA_GPIO_IN_EN1_I2S_MCLK_SHIFT          24
903 #define QCA_GPIO_IN_EN1_I2S_MCLK_MASK           BITS(QCA_GPIO_IN_EN1_I2S_MCLK_SHIFT ,8)
904
905 /* GPIO_IN_ENABLE9 register (GPIO in signals 9) */
906 #define QCA_GPIO_IN_EN9_HSUART_RXD_SHIFT        16
907 #define QCA_GPIO_IN_EN9_HSUART_RXD_MASK         BITS(QCA_GPIO_IN_EN9_HSUART_RXD_SHIFT ,8)
908 #define QCA_GPIO_IN_EN9_HSUART_CTS_SHIFT        24
909 #define QCA_GPIO_IN_EN9_HSUART_CTS_MASK         BITS(QCA_GPIO_IN_EN9_HSUART_CTS_SHIFT ,8)
910
911 /* GPIO_FUNCTION register (GPIO function) */
912 #define QCA_GPIO_FUNC_GPIO_SRIF_EN_SHIFT        0
913 #define QCA_GPIO_FUNC_GPIO_SRIF_EN_MASK         BIT(QCA_GPIO_FUNC_GPIO_SRIF_EN_SHIFT)
914 #define QCA_GPIO_FUNC_JTAG_DIS_SHIFT            1
915 #define QCA_GPIO_FUNC_JTAG_DIS_MASK             BIT(QCA_GPIO_FUNC_JTAG_DIS_SHIFT)
916 #define QCA_GPIO_FUNC_CLK_OBS0_EN_SHIFT         2
917 #define QCA_GPIO_FUNC_CLK_OBS0_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS0_EN_SHIFT)
918 #define QCA_GPIO_FUNC_CLK_OBS1_EN_SHIFT         3
919 #define QCA_GPIO_FUNC_CLK_OBS1_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS1_EN_SHIFT)
920 #define QCA_GPIO_FUNC_CLK_OBS2_EN_SHIFT         4
921 #define QCA_GPIO_FUNC_CLK_OBS2_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS2_EN_SHIFT)
922 #define QCA_GPIO_FUNC_CLK_OBS3_EN_SHIFT         5
923 #define QCA_GPIO_FUNC_CLK_OBS3_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS3_EN_SHIFT)
924 #define QCA_GPIO_FUNC_CLK_OBS4_EN_SHIFT         6
925 #define QCA_GPIO_FUNC_CLK_OBS4_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS4_EN_SHIFT)
926 #define QCA_GPIO_FUNC_CLK_OBS5_EN_SHIFT         7
927 #define QCA_GPIO_FUNC_CLK_OBS5_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS5_EN_SHIFT)
928 #define QCA_GPIO_FUNC_CLK_OBS6_EN_SHIFT         8
929 #define QCA_GPIO_FUNC_CLK_OBS6_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS6_EN_SHIFT)
930 #define QCA_GPIO_FUNC_CLK_OBS7_EN_SHIFT         9
931 #define QCA_GPIO_FUNC_CLK_OBS7_EN_MASK          BIT(QCA_GPIO_FUNC_CLK_OBS7_EN_SHIFT)
932
933 /*
934  * PLL control registers
935  */
936 #define QCA_PLL_CPU_PLL_CFG_REG QCA_PLL_BASE_REG + 0x00
937
938 #if (SOC_TYPE & QCA_AR933X_SOC)
939         #define QCA_PLL_CPU_PLL_CFG2_REG                                        QCA_PLL_BASE_REG + 0x04
940         #define QCA_PLL_CPU_CLK_CTRL_REG                                        QCA_PLL_BASE_REG + 0x08
941         #define QCA_PLL_CPU_PLL_DITHER_FRAC_REG                                 QCA_PLL_BASE_REG + 0x10
942         #define QCA_PLL_CPU_PLL_DITHER_REG                                      QCA_PLL_BASE_REG + 0x14
943         #define QCA_PLL_ETHSW_CLK_CTRL_REG                                      QCA_PLL_BASE_REG + 0x24
944         #define QCA_PLL_ETH_XMII_CTRL_REG                                       QCA_PLL_BASE_REG + 0x2C
945         #define QCA_PLL_USB_SUSPEND_REG                                         QCA_PLL_BASE_REG + 0x40
946         #define QCA_PLL_WLAN_CLK_CTRL_REG                                       QCA_PLL_BASE_REG + 0x44
947 #else
948         #if (SOC_TYPE & QCA_QCA956X_SOC)
949                 #define QCA_PLL_CPU_PLL_CFG1_REG                                QCA_PLL_BASE_REG + 0x04
950                 #define QCA_PLL_DDR_PLL_CFG_REG                                 QCA_PLL_BASE_REG + 0x08
951                 #define QCA_PLL_DDR_PLL_CFG1_REG                                QCA_PLL_BASE_REG + 0x0C
952                 #define QCA_PLL_CPU_DDR_CLK_CTRL_REG                            QCA_PLL_BASE_REG + 0x10
953                 #define QCA_PLL_PCIE_PLL_CFG_REG                                QCA_PLL_BASE_REG + 0x14
954                 #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                         QCA_PLL_BASE_REG + 0x18
955                 #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                         QCA_PLL_BASE_REG + 0x1C
956                 #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                        QCA_PLL_BASE_REG + 0x20
957                 #define QCA_PLL_LDO_PWR_CTRL_REG                                QCA_PLL_BASE_REG + 0x24
958                 #define QCA_PLL_SWITCH_CLK_CTRL_REG                             QCA_PLL_BASE_REG + 0x28
959                 #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                        QCA_PLL_BASE_REG + 0x2C
960                 #define QCA_PLL_ETH_XMII_CTRL_REG                               QCA_PLL_BASE_REG + 0x30
961                 #define QCA_PLL_BB_PLL_CFG_REG                                  QCA_PLL_BASE_REG + 0x34
962                 #define QCA_PLL_DDR_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x38
963                 #define QCA_PLL_DDR_PLL_DITHER2_REG                             QCA_PLL_BASE_REG + 0x3C
964                 #define QCA_PLL_CPU_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x40
965                 #define QCA_PLL_CPU_PLL_DITHER2_REG                             QCA_PLL_BASE_REG + 0x44
966                 #define QCA_PLL_ETH_SGMII_CTRL_REG                              QCA_PLL_BASE_REG + 0x48
967                 #define QCA_PLL_ETH_SGMII_SERDES_REG                            QCA_PLL_BASE_REG + 0x4C
968         #else
969                 #define QCA_PLL_DDR_PLL_CFG_REG                                 QCA_PLL_BASE_REG + 0x04
970                 #define QCA_PLL_CPU_DDR_CLK_CTRL_REG                            QCA_PLL_BASE_REG + 0x08
971
972                 #if (SOC_TYPE & QCA_QCA955X_SOC)
973                         #define QCA_PLL_PCIE_PLL_CFG_REG                        QCA_PLL_BASE_REG + 0x0C
974                         #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                 QCA_PLL_BASE_REG + 0x10
975                         #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                 QCA_PLL_BASE_REG + 0x14
976                         #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x18
977                         #define QCA_PLL_LDO_PWR_CTRL_REG                        QCA_PLL_BASE_REG + 0x1C
978                         #define QCA_PLL_SWITCH_CLK_CTRL_REG                     QCA_PLL_BASE_REG + 0x20
979                         #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x24
980                         #define QCA_PLL_ETH_XMII_CTRL_REG                       QCA_PLL_BASE_REG + 0x28
981                         #define QCA_PLL_AUDIO_PLL_CFG_REG                       QCA_PLL_BASE_REG + 0x2C
982                         #define QCA_PLL_AUDIO_PLL_MODUL_REG                     QCA_PLL_BASE_REG + 0x30
983                         #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG                QCA_PLL_BASE_REG + 0x34
984                         #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG                QCA_PLL_BASE_REG + 0x38
985                         #define QCA_PLL_BB_PLL_CFG_REG                          QCA_PLL_BASE_REG + 0x3C
986                         #define QCA_PLL_DDR_PLL_DITHER_REG                      QCA_PLL_BASE_REG + 0x40
987                         #define QCA_PLL_CPU_PLL_DITHER_REG                      QCA_PLL_BASE_REG + 0x44
988                         #define QCA_PLL_ETH_SGMII_CTRL_REG                      QCA_PLL_BASE_REG + 0x48
989                         #define QCA_PLL_ETH_SGMII_SERDES_REG                    QCA_PLL_BASE_REG + 0x4C
990                         #define QCA_PLL_SLIC_PWM_DIV_REG                        QCA_PLL_BASE_REG + 0x50
991                 #else
992                         #define QCA_PLL_CPU_SYNC_REG                            QCA_PLL_BASE_REG + 0x0C
993                         #define QCA_PLL_PCIE_PLL_CFG_REG                        QCA_PLL_BASE_REG + 0x10
994                         #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                 QCA_PLL_BASE_REG + 0x14
995                         #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                 QCA_PLL_BASE_REG + 0x18
996                         #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x1C
997                         #define QCA_PLL_LDO_PWR_CTRL_REG                        QCA_PLL_BASE_REG + 0x20
998                         #define QCA_PLL_SWITCH_CLK_CTRL_REG                     QCA_PLL_BASE_REG + 0x24
999                         #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x28
1000                         #define QCA_PLL_ETH_XMII_CTRL_REG                       QCA_PLL_BASE_REG + 0x2C
1001
1002                         #if (SOC_TYPE & QCA_AR934X_SOC)
1003                                 #define QCA_PLL_AUDIO_PLL_CFG_REG               QCA_PLL_BASE_REG + 0x30
1004                                 #define QCA_PLL_AUDIO_PLL_MODUL_REG             QCA_PLL_BASE_REG + 0x34
1005                                 #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG        QCA_PLL_BASE_REG + 0x38
1006                                 #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG        QCA_PLL_BASE_REG + 0x3C
1007                         #endif
1008
1009                         #define QCA_PLL_BB_PLL_CFG_REG                          QCA_PLL_BASE_REG + 0x40
1010                         #define QCA_PLL_DDR_PLL_DITHER_REG                      QCA_PLL_BASE_REG + 0x44
1011                         #define QCA_PLL_CPU_PLL_DITHER_REG                      QCA_PLL_BASE_REG + 0x48
1012                 #endif
1013         #endif
1014 #endif
1015
1016 /*
1017  * PLL control registers BIT fields
1018  */
1019
1020 /* CPU_PLL_CONFIG register (CPU phase lock loop configuration) */
1021 #if (SOC_TYPE & QCA_AR933X_SOC)
1022         #define QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT         0
1023         #define QCA_PLL_CPU_PLL_CFG_NFRAC_MASK          BITS(QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT, 10)
1024         #define QCA_PLL_CPU_PLL_CFG_NINT_SHIFT          10
1025         #define QCA_PLL_CPU_PLL_CFG_NINT_MASK           BITS(QCA_PLL_CPU_PLL_CFG_NINT_SHIFT, 6)
1026         #define QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT        16
1027         #define QCA_PLL_CPU_PLL_CFG_REFDIV_MASK         BITS(QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT, 5)
1028         #define QCA_PLL_CPU_PLL_CFG_RANGE_SHIFT         21
1029         #define QCA_PLL_CPU_PLL_CFG_RANGE_MASK          BIT(QCA_PLL_CPU_PLL_CFG_RANGE_SHIFT)
1030         #define QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT        23
1031         #define QCA_PLL_CPU_PLL_CFG_OUTDIV_MASK         BITS(QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT, 3)
1032 #else
1033         #if (SOC_TYPE & QCA_AR934X_SOC)  |\
1034             (SOC_TYPE & QCA_QCA953X_SOC) |\
1035             (SOC_TYPE & QCA_QCA955X_SOC)
1036                 #define QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT 0
1037                 #define QCA_PLL_CPU_PLL_CFG_NFRAC_MASK  BITS(QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT, 6)
1038                 #define QCA_PLL_CPU_PLL_CFG_NINT_SHIFT  6
1039                 #define QCA_PLL_CPU_PLL_CFG_NINT_MASK   BITS(QCA_PLL_CPU_PLL_CFG_NINT_SHIFT, 6)
1040         #endif
1041
1042         #define QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT        12
1043         #define QCA_PLL_CPU_PLL_CFG_REFDIV_MASK         BITS(QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT, 5)
1044         #define QCA_PLL_CPU_PLL_CFG_RANGE_SHIFT         17
1045         #define QCA_PLL_CPU_PLL_CFG_RANGE_MASK          BITS(QCA_PLL_CPU_PLL_CFG_RANGE_SHIFT, 2)
1046         #define QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT        19
1047         #define QCA_PLL_CPU_PLL_CFG_OUTDIV_MASK         BITS(QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT, 3)
1048 #endif
1049
1050 #define QCA_PLL_CPU_PLL_CFG_PLLPWD_SHIFT                30
1051 #define QCA_PLL_CPU_PLL_CFG_PLLPWD_MASK                 BIT(QCA_PLL_CPU_PLL_CFG_PLLPWD_SHIFT)
1052 #define QCA_PLL_CPU_PLL_CFG_UPDATING_SHIFT              31
1053 #define QCA_PLL_CPU_PLL_CFG_UPDATING_MASK               BIT(QCA_PLL_CPU_PLL_CFG_UPDATING_SHIFT)
1054
1055 /* CPU_PLL_CONFIG1 register (QCA956x only) */
1056 #define QCA_PLL_CPU_PLL_CFG1_NFRAC_L_SHIFT      0
1057 #define QCA_PLL_CPU_PLL_CFG1_NFRAC_L_MASK       BITS(QCA_PLL_CPU_PLL_CFG1_NFRAC_L_SHIFT, 5)
1058 #define QCA_PLL_CPU_PLL_CFG1_NFRAC_H_SHIFT      5
1059 #define QCA_PLL_CPU_PLL_CFG1_NFRAC_H_MASK       BITS(QCA_PLL_CPU_PLL_CFG1_NFRAC_H_SHIFT, 13)
1060 #define QCA_PLL_CPU_PLL_CFG1_NINT_SHIFT         18
1061 #define QCA_PLL_CPU_PLL_CFG1_NINT_MASK          BITS(QCA_PLL_CPU_PLL_CFG1_NINT_SHIFT, 9)
1062
1063 /* CPU_PLL_CONFIG2 register (CPU phase lock loop configuration, AR933x only) */
1064 #define QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_SHIFT  0
1065 #define QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_MASK   BITS(QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_SHIFT, 12)
1066
1067 /* CPU_CLOCK_CONTROL register (CPU clock control, AR933x only) */
1068 #define QCA_PLL_CPU_CLK_CTRL_BYPASS_SHIFT       2
1069 #define QCA_PLL_CPU_CLK_CTRL_BYPASS_MASK        BIT(QCA_PLL_CPU_CLK_CTRL_BYPASS_SHIFT)
1070 #define QCA_PLL_CPU_CLK_CTRL_CPU_POST_DIV_SHIFT 5
1071 #define QCA_PLL_CPU_CLK_CTRL_CPU_POST_DIV_MASK  BITS(QCA_PLL_CPU_CLK_CTRL_CPU_POST_DIV_SHIFT, 2)
1072 #define QCA_PLL_CPU_CLK_CTRL_DDR_POST_DIV_SHIFT 10
1073 #define QCA_PLL_CPU_CLK_CTRL_DDR_POST_DIV_MASK  BITS(QCA_PLL_CPU_CLK_CTRL_DDR_POST_DIV_SHIFT, 2)
1074 #define QCA_PLL_CPU_CLK_CTRL_AHB_POST_DIV_SHIFT 15
1075 #define QCA_PLL_CPU_CLK_CTRL_AHB_POST_DIV_MASK  BITS(QCA_PLL_CPU_CLK_CTRL_AHB_POST_DIV_SHIFT, 2)
1076
1077 /* ETHSW_CLOCK_CONTROL register (Ethernet switch clock control, AR933x only) */
1078 #define QCA_PLL_ETHSW_CLK_CTRL_CORE_PLLPWD_SHIFT        3
1079 #define QCA_PLL_ETHSW_CLK_CTRL_CORE_PLLPWD_MASK         BIT(QCA_PLL_ETHSW_CLK_CTRL_CORE_PLLPWD_SHIFT)
1080 #define QCA_PLL_ETHSW_CLK_CTRL_CORE_BIAS_EN_SHIFT       4
1081 #define QCA_PLL_ETHSW_CLK_CTRL_CORE_BIAS_EN_MASK        BIT(QCA_PLL_ETHSW_CLK_CTRL_CORE_BIAS_EN_SHIFT)
1082
1083 /* ETH_XMII_CONTROL register (Ethernet XMII control) */
1084 #define QCA_PLL_ETH_XMII_CTRL_PHASE0_CNT_SHIFT          0
1085 #define QCA_PLL_ETH_XMII_CTRL_PHASE0_CNT_MASK           BITS(QCA_PLL_ETH_XMII_CTRL_PHASE0_CNT_SHIFT, 8)
1086 #define QCA_PLL_ETH_XMII_CTRL_PHASE1_CNT_SHIFT          8
1087 #define QCA_PLL_ETH_XMII_CTRL_PHASE1_CNT_MASK           BITS(QCA_PLL_ETH_XMII_CTRL_PHASE1_CNT_SHIFT, 8)
1088 #define QCA_PLL_ETH_XMII_CTRL_OFFSET_CNT_SHIFT          16
1089 #define QCA_PLL_ETH_XMII_CTRL_OFFSET_CNT_MASK           BITS(QCA_PLL_ETH_XMII_CTRL_OFFSET_CNT_SHIFT, 8)
1090 #define QCA_PLL_ETH_XMII_CTRL_OFFSET_PHASE_SHIFT        24
1091 #define QCA_PLL_ETH_XMII_CTRL_OFFSET_PHASE_MASK         BIT(QCA_PLL_ETH_XMII_CTRL_OFFSET_PHASE_SHIFT)
1092 #define QCA_PLL_ETH_XMII_CTRL_GIGE_SHIFT                25
1093 #define QCA_PLL_ETH_XMII_CTRL_GIGE_MASK                 BIT(QCA_PLL_ETH_XMII_CTRL_GIGE_SHIFT)
1094 #define QCA_PLL_ETH_XMII_CTRL_TX_DELAY_SHIFT            26
1095 #define QCA_PLL_ETH_XMII_CTRL_TX_DELAY_MASK             BITS(QCA_PLL_ETH_XMII_CTRL_TX_DELAY_SHIFT, 2)
1096 #define QCA_PLL_ETH_XMII_CTRL_RX_DELAY_SHIFT            28
1097 #define QCA_PLL_ETH_XMII_CTRL_RX_DELAY_MASK             BITS(QCA_PLL_ETH_XMII_CTRL_RX_DELAY_SHIFT, 2)
1098 #define QCA_PLL_ETH_XMII_CTRL_GIGE_QUAD_SHIFT           30
1099 #define QCA_PLL_ETH_XMII_CTRL_GIGE_QUAD_MASK            BIT(QCA_PLL_ETH_XMII_CTRL_GIGE_QUAD_SHIFT)
1100 #define QCA_PLL_ETH_XMII_CTRL_TX_INVERT_SHIFT           31
1101 #define QCA_PLL_ETH_XMII_CTRL_TX_INVERT_MASK            BIT(QCA_PLL_ETH_XMII_CTRL_TX_INVERT_SHIFT)
1102
1103 /* SUSPEND register (USB suspend, AR933x only) */
1104 #define QCA_PLL_USB_SUSPEND_EN_SHIFT            0
1105 #define QCA_PLL_USB_SUSPEND_EN_MASK             BIT(QCA_PLL_USB_SUSPEND_EN_SHIFT)
1106 #define QCA_PLL_USB_SUSPEND_RESTART_TIME_SHIFT  8
1107 #define QCA_PLL_USB_SUSPEND_RESTART_TIME_MASK   BITS(QCA_PLL_USB_SUSPEND_RESTART_TIME_SHIFT, 20)
1108
1109 /* WLAN_CLOCK_CONTROL register (WLAN clock control, AR933x only) */
1110 #define QCA_PLL_WLAN_CLK_CTRL_CLK_CTL_MASK_SHIFT        0
1111 #define QCA_PLL_WLAN_CLK_CTRL_CLK_CTL_MASK_MASK         BIT(QCA_PLL_WLAN_CLK_CTRL_CLK_CTL_MASK_SHIFT)
1112 #define QCA_PLL_WLAN_CLK_CTRL_PWDN_CTL_SHIFT            1
1113 #define QCA_PLL_WLAN_CLK_CTRL_PWDN_CTL_MASK             BIT(QCA_PLL_WLAN_CLK_CTRL_PWDN_CTL_SHIFT)
1114 #define QCA_PLL_WLAN_CLK_CTRL_CLKIN_CTL_SHIFT           2
1115 #define QCA_PLL_WLAN_CLK_CTRL_CLKIN_CTL_MASK            BIT(QCA_PLL_WLAN_CLK_CTRL_CLKIN_CTL_SHIFT)
1116 #define QCA_PLL_WLAN_CLK_CTRL_PLLPWD_CTL_SHIFT          3
1117 #define QCA_PLL_WLAN_CLK_CTRL_PLLPWD_CTL_MASK           BIT(QCA_PLL_WLAN_CLK_CTRL_PLLPWD_CTL_SHIFT)
1118 #define QCA_PLL_WLAN_CLK_CTRL_GLBL_CLK_EN_SHIFT         4
1119 #define QCA_PLL_WLAN_CLK_CTRL_GLBL_CLK_EN_MASK          BIT(QCA_PLL_WLAN_CLK_CTRL_GLBL_CLK_EN_SHIFT)
1120 #define QCA_PLL_WLAN_CLK_CTRL_WLANRST_CTL_MASK_SHIFT    8
1121 #define QCA_PLL_WLAN_CLK_CTRL_WLANRST_CTL_MASK_MASK     BIT(QCA_PLL_WLAN_CLK_CTRL_WLANRST_CTL_MASK_SHIFT)
1122 #define QCA_PLL_WLAN_CLK_CTRL_CLKGEN_COLD_RST_CTL_SHIFT 9
1123 #define QCA_PLL_WLAN_CLK_CTRL_CLKGEN_COLD_RST_CTL_MASK  BIT(QCA_PLL_WLAN_CLK_CTRL_CLKGEN_COLD_RST_CTL_SHIFT)
1124 #define QCA_PLL_WLAN_CLK_CTRL_RADIO_COLD_RST_CTL_SHIFT  10
1125 #define QCA_PLL_WLAN_CLK_CTRL_RADIO_COLD_RST_CTL_MASK   BIT(QCA_PLL_WLAN_CLK_CTRL_RADIO_COLD_RST_CTL_SHIFT)
1126 #define QCA_PLL_WLAN_CLK_CTRL_UART_CLK88_SHIFT          12
1127 #define QCA_PLL_WLAN_CLK_CTRL_UART_CLK88_MASK           BIT(QCA_PLL_WLAN_CLK_CTRL_UART_CLK88_SHIFT)
1128
1129 /* DDR_PLL_CONFIG register (DDR PLL configuration) */
1130 #if (SOC_TYPE & QCA_AR934X_SOC)  |\
1131     (SOC_TYPE & QCA_QCA953X_SOC) |\
1132     (SOC_TYPE & QCA_QCA955X_SOC)
1133         #define QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT 0
1134         #define QCA_PLL_DDR_PLL_CFG_NFRAC_MASK  BITS(QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT, 10)
1135         #define QCA_PLL_DDR_PLL_CFG_NINT_SHIFT  10
1136         #define QCA_PLL_DDR_PLL_CFG_NINT_MASK   BITS(QCA_PLL_DDR_PLL_CFG_NINT_SHIFT, 6)
1137 #endif
1138
1139 #define QCA_PLL_DDR_PLL_CFG_REFDIV_SHIFT        16
1140 #define QCA_PLL_DDR_PLL_CFG_REFDIV_MASK         BITS(QCA_PLL_DDR_PLL_CFG_REFDIV_SHIFT, 5)
1141 #define QCA_PLL_DDR_PLL_CFG_RANGE_SHIFT         21
1142 #define QCA_PLL_DDR_PLL_CFG_RANGE_MASK          BITS(QCA_PLL_DDR_PLL_CFG_RANGE_SHIFT, 2)
1143 #define QCA_PLL_DDR_PLL_CFG_OUTDIV_SHIFT        23
1144 #define QCA_PLL_DDR_PLL_CFG_OUTDIV_MASK         BITS(QCA_PLL_DDR_PLL_CFG_OUTDIV_SHIFT, 3)
1145 #define QCA_PLL_DDR_PLL_CFG_PLLPWD_SHIFT        30
1146 #define QCA_PLL_DDR_PLL_CFG_PLLPWD_MASK         BIT(QCA_PLL_DDR_PLL_CFG_PLLPWD_SHIFT)
1147 #define QCA_PLL_DDR_PLL_CFG_UPDATING_SHIFT      31
1148 #define QCA_PLL_DDR_PLL_CFG_UPDATING_MASK       BIT(QCA_PLL_DDR_PLL_CFG_UPDATING_SHIFT)
1149
1150 /* DDR_PLL_CONFIG1 register (QCA956x only) */
1151 #define QCA_PLL_DDR_PLL_CFG1_NFRAC_L_SHIFT      0
1152 #define QCA_PLL_DDR_PLL_CFG1_NFRAC_L_MASK       BITS(QCA_PLL_DDR_PLL_CFG1_NFRAC_L_SHIFT, 5)
1153 #define QCA_PLL_DDR_PLL_CFG1_NFRAC_H_SHIFT      5
1154 #define QCA_PLL_DDR_PLL_CFG1_NFRAC_H_MASK       BITS(QCA_PLL_DDR_PLL_CFG1_NFRAC_H_SHIFT, 13)
1155 #define QCA_PLL_DDR_PLL_CFG1_NINT_SHIFT         18
1156 #define QCA_PLL_DDR_PLL_CFG1_NINT_MASK          BITS(QCA_PLL_DDR_PLL_CFG1_NINT_SHIFT, 9)
1157
1158 /* CPU_DDR_CLOCK_CONTROL register (CPU DDR clock control) */
1159 #define QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_SHIFT                       1
1160 #define QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_MASK                        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_SHIFT)
1161 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_PLL_BYPASS_SHIFT                   2
1162 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_PLL_BYPASS_MASK                    BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPU_PLL_BYPASS_SHIFT)
1163 #define QCA_PLL_CPU_DDR_CLK_CTRL_DDR_PLL_BYPASS_SHIFT                   3
1164 #define QCA_PLL_CPU_DDR_CLK_CTRL_DDR_PLL_BYPASS_MASK                    BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDR_PLL_BYPASS_SHIFT)
1165 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_PLL_BYPASS_SHIFT                   4
1166 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_PLL_BYPASS_MASK                    BIT(QCA_PLL_CPU_DDR_CLK_CTRL_AHB_PLL_BYPASS_SHIFT)
1167 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_POST_DIV_SHIFT                     5
1168 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_POST_DIV_MASK                      BITS(QCA_PLL_CPU_DDR_CLK_CTRL_CPU_POST_DIV_SHIFT, 5)
1169 #define QCA_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_SHIFT                     10
1170 #define QCA_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_MASK                      BITS(QCA_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_SHIFT, 5)
1171 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_SHIFT                     15
1172 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_MASK                      BITS(QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_SHIFT, 5)
1173
1174 #if (SOC_TYPE & QCA_QCA955X_SOC) |\
1175     (SOC_TYPE & QCA_QCA956X_SOC)
1176         #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_SHIFT       20
1177         #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_SHIFT)
1178         #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_SHIFT       21
1179         #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_SHIFT)
1180 #else
1181         #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT       20
1182         #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT)
1183         #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT       21
1184         #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT)
1185 #endif
1186
1187 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_SHIFT               22
1188 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_MASK                BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_SHIFT)
1189 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_DEASRT_SHIFT             23
1190 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_DEASRT_MASK              BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_DEASRT_SHIFT)
1191 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_SHIFT               24
1192 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_MASK                BIT(QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_SHIFT)
1193
1194 /* PCIE_PLL_CONFIG register (PCIE RC phase lock loop configuration) */
1195 #define QCA_PLL_PCIE_PLL_CFG_REFDIV_SHIFT       10
1196 #define QCA_PLL_PCIE_PLL_CFG_REFDIV_MASK        BITS(QCA_PLL_PCIE_PLL_CFG_REFDIV_SHIFT, 5)
1197 #define QCA_PLL_PCIE_PLL_CFG_BYPASS_SHIFT       16
1198 #define QCA_PLL_PCIE_PLL_CFG_BYPASS_MASK        BIT(QCA_PLL_PCIE_PLL_CFG_BYPASS_SHIFT)
1199 #define QCA_PLL_PCIE_PLL_CFG_PLLPWD_SHIFT       30
1200 #define QCA_PLL_PCIE_PLL_CFG_PLLPWD_MASK        BIT(QCA_PLL_PCIE_PLL_CFG_PLLPWD_SHIFT)
1201 #define QCA_PLL_PCIE_PLL_CFG_UPDATING_SHIFT     31
1202 #define QCA_PLL_PCIE_PLL_CFG_UPDATING_MASK      BIT(QCA_PLL_PCIE_PLL_CFG_UPDATING_SHIFT)
1203
1204 /* PCIE_PLL_DITHER_DIV_MAX (PCIE PLL dither parameter) */
1205 #define QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_SHIFT     1
1206 #define QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_MASK      BITS(QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_SHIFT, 14)
1207 #define QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_SHIFT      15
1208 #define QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_MASK       BITS(QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_SHIFT, 6)
1209 #define QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_SHIFT       30
1210 #define QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_MASK        BIT(QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_SHIFT)
1211 #define QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_SHIFT     31
1212 #define QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_MASK      BIT(QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_SHIFT)
1213
1214 /* PCIE_PLL_DITHER_DIV_MIN (PCIE PLL dither parameter) */
1215 #define QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_SHIFT     1
1216 #define QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_MASK      BITS(QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_SHIFT, 14)
1217 #define QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_SHIFT      15
1218 #define QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_MASK       BITS(QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_SHIFT, 6)
1219
1220 /* PCIE_PLL_DITHER_STEP (PCIE PLL dither parameter) */
1221 #define QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_SHIFT   1
1222 #define QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_MASK    BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_SHIFT, 14)
1223 #define QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_SHIFT    15
1224 #define QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_MASK     BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_SHIFT, 10)
1225 #define QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_SHIFT   28
1226 #define QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_MASK    BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_SHIFT, 4)
1227
1228 /* SWITCH_CLOCK_CONTROL */
1229 #if (SOC_TYPE & QCA_AR934X_SOC) |\
1230     (SOC_TYPE & QCA_QCA953X_SOC)
1231         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT                    0
1232         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT)
1233         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT                  1
1234         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_MASK                   BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT)
1235         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT                    2
1236         #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT)
1237         #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT                            3
1238         #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_MASK                             BIT(QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT)
1239         #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT                    4
1240         #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT)
1241         #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT                5
1242         #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_MASK                 BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT)
1243         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT                      6
1244         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_MASK                       BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT)
1245 #else
1246         #define QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_SHIFT                       5
1247         #define QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_MASK                        BIT(QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_SHIFT)
1248         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT                   6
1249         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT)
1250
1251         #if (SOC_TYPE & QCA_QCA955X_SOC)
1252                 #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT              12
1253                 #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_MASK               BIT(QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT)
1254         #elif (SOC_TYPE & QCA_QCA956X_SOC)
1255                 #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT            12
1256                 #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_MASK             BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT)
1257                 #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT            19
1258                 #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_MASK             BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT)
1259                 #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT          16
1260                 #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_MASK           BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT)
1261                 #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT                    17
1262                 #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT)
1263                 #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT        18
1264                 #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_MASK         BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT)
1265         #endif
1266
1267         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT                   13
1268         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT)
1269         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT                   14
1270         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT)
1271         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT                   15
1272         #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT)
1273 #endif
1274
1275 #define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT                            7
1276 #define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_MASK                             BIT(QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT)
1277 #define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT                               8
1278 #define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_MASK                                BITS(QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT, 4)
1279
1280 /* DDR_PLL_DITHER register (DDR PLL dither parameter) */
1281 #if (SOC_TYPE & QCA_QCA956X_SOC)
1282         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_SHIFT        0
1283         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_MASK         BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_SHIFT, 5)
1284         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_SHIFT        5
1285         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_MASK         BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_SHIFT, 13)
1286 #else
1287         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT          0
1288         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_MASK           BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT, 10)
1289         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT          10
1290         #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_MASK           BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT, 10)
1291 #endif
1292
1293 #define QCA_PLL_DDR_PLL_DITHER_NFRAC_STEP_SHIFT                 20
1294 #define QCA_PLL_DDR_PLL_DITHER_NFRAC_STEP_MASK                  BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT, 7)
1295 #define QCA_PLL_DDR_PLL_DITHER_UPDATE_CNT_SHIFT                 27
1296 #define QCA_PLL_DDR_PLL_DITHER_UPDATE_CNT_MASK                  BITS(QCA_PLL_DDR_PLL_DITHER_UPDATE_CNT_SHIFT, 4)
1297 #define QCA_PLL_DDR_PLL_DITHER_DITHER_EN_SHIFT                  31
1298 #define QCA_PLL_DDR_PLL_DITHER_DITHER_EN_MASK                   BIT(QCA_PLL_DDR_PLL_DITHER_DITHER_EN_SHIFT)
1299
1300 /* DDR_PLL_DITHER2 register (QCA956x only) */
1301 #define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_SHIFT       0
1302 #define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_MASK        BITS(QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_SHIFT, 5)
1303 #define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_SHIFT       5
1304 #define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_MASK        BITS(QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_SHIFT, 13)
1305
1306 #if (SOC_TYPE & QCA_AR933X_SOC)
1307         /* PLL_DITHER_FRAC register (CPU PLL dither FRAC) */
1308         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MAX_SHIFT             0
1309         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MAX_MASK              BITS(QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MAX_SHIFT, 10)
1310         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MIN_SHIFT             10
1311         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MIN_MASK              BITS(QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MIN_SHIFT, 10)
1312         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_STEP_SHIFT            20
1313         #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_STEP_MASK             BITS(QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_STEP_SHIFT, 10)
1314
1315         /* PLL_DITHER register (CPU PLL dither) */
1316         #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT                 0
1317         #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK                  BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 14)
1318 #else
1319         /* CPU_PLL_DITHER register (CPU PLL dither parameter) */
1320         #if (SOC_TYPE & QCA_QCA956X_SOC)
1321                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_SHIFT        0
1322                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_MASK         BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_SHIFT, 5)
1323                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_SHIFT        5
1324                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_MASK         BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_SHIFT, 13)
1325                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_SHIFT         18
1326                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
1327                 #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT         24
1328                 #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 6)
1329         #else
1330                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT          0
1331                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_MASK           BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT, 6)
1332                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT          6
1333                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_MASK           BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
1334                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_SHIFT         12
1335                 #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
1336                 #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT         18
1337                 #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 6)
1338         #endif
1339 #endif
1340
1341 #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT                          31
1342 #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_MASK                           BIT(QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT)
1343
1344 /* CPU_PLL_DITHER2 register (QCA956x only) */
1345 #define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_SHIFT       0
1346 #define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_MASK        BITS(QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_SHIFT, 5)
1347 #define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_SHIFT       5
1348 #define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_MASK        BITS(QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_SHIFT, 13)
1349
1350 /*
1351  * PLL SRIF registers (not available in AR933x)
1352  */
1353 #define QCA_PLL_SRIF_BB_DPLL_BASE_REG           QCA_PLL_SRIF_BASE_REG + 0x180
1354 #define QCA_PLL_SRIF_AUD_DPLL_BASE_REG          QCA_PLL_SRIF_BASE_REG + 0x200
1355
1356 #if (SOC_TYPE & QCA_QCA955X_SOC) |\
1357     (SOC_TYPE & QCA_QCA956X_SOC)
1358         #define QCA_PLL_SRIF_CPU_DPLL_BASE_REG  QCA_PLL_SRIF_BASE_REG + 0xF00
1359         #define QCA_PLL_SRIF_DDR_DPLL_BASE_REG  QCA_PLL_SRIF_BASE_REG + 0xEC0
1360         #define QCA_PLL_SRIF_PCIE_DPLL_BASE_REG QCA_PLL_SRIF_BASE_REG + 0xC80
1361 #else
1362         #define QCA_PLL_SRIF_CPU_DPLL_BASE_REG  QCA_PLL_SRIF_BASE_REG + 0x1C0
1363         #define QCA_PLL_SRIF_DDR_DPLL_BASE_REG  QCA_PLL_SRIF_BASE_REG + 0x240
1364         #define QCA_PLL_SRIF_PCIE_DPLL_BASE_REG QCA_PLL_SRIF_BASE_REG + 0xC00
1365 #endif
1366
1367 #define QCA_PLL_SRIF_BB_DPLL1_REG               QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x0
1368 #define QCA_PLL_SRIF_BB_DPLL2_REG               QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x4
1369 #define QCA_PLL_SRIF_BB_DPLL3_REG               QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x8
1370 #define QCA_PLL_SRIF_BB_DPLL4_REG               QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0xC
1371
1372 #define QCA_PLL_SRIF_CPU_DPLL1_REG              QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x0
1373 #define QCA_PLL_SRIF_CPU_DPLL2_REG              QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x4
1374 #define QCA_PLL_SRIF_CPU_DPLL3_REG              QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x8
1375 #define QCA_PLL_SRIF_CPU_DPLL4_REG              QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0xC
1376
1377 #define QCA_PLL_SRIF_AUD_DPLL1_REG              QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x0
1378 #define QCA_PLL_SRIF_AUD_DPLL2_REG              QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x4
1379 #define QCA_PLL_SRIF_AUD_DPLL3_REG              QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x8
1380 #define QCA_PLL_SRIF_AUD_DPLL4_REG              QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0xC
1381
1382 #define QCA_PLL_SRIF_DDR_DPLL1_REG              QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x0
1383 #define QCA_PLL_SRIF_DDR_DPLL2_REG              QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x4
1384 #define QCA_PLL_SRIF_DDR_DPLL3_REG              QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x8
1385 #define QCA_PLL_SRIF_DDR_DPLL4_REG              QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0xC
1386
1387 #define QCA_PLL_SRIF_PCIE_DPLL1_REG             QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x0
1388 #define QCA_PLL_SRIF_PCIE_DPLL2_REG             QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x4
1389 #define QCA_PLL_SRIF_PCIE_DPLL3_REG             QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x8
1390 #define QCA_PLL_SRIF_PCIE_DPLL4_REG             QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0xC
1391
1392 /*
1393  * PLL SRIF registers BIT fields (not available in AR933x)
1394  */
1395
1396 /* DPLL1 (common for BB, CPU, AUD, DDR and PCIE) */
1397 #define QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT  0
1398 #define QCA_PLL_SRIF_DPLL1_NFRAC_MASK   BITS(QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT, 18)
1399 #define QCA_PLL_SRIF_DPLL1_NINT_SHIFT   18
1400 #define QCA_PLL_SRIF_DPLL1_NINT_MASK    BITS(QCA_PLL_SRIF_DPLL1_NINT_SHIFT, 9)
1401 #define QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT 27
1402 #define QCA_PLL_SRIF_DPLL1_REFDIV_MASK  BITS(QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT, 5)
1403
1404 /* DPLL2 (common for BB, CPU, AUD, DDR and PCIE) */
1405 #if (SOC_TYPE & QCA_QCA953X_SOC) |\
1406     (SOC_TYPE & QCA_QCA956X_SOC)
1407         #define QCA_PLL_SRIF_DPLL2_RST_TEST_SHIFT       0
1408         #define QCA_PLL_SRIF_DPLL2_RST_TEST_MASK        BIT(QCA_PLL_SRIF_DPLL2_RST_TEST_SHIFT)
1409         #define QCA_PLL_SRIF_DPLL2_SEL_CNT_SHIFT        1
1410         #define QCA_PLL_SRIF_DPLL2_SEL_CNT_MASK         BIT(QCA_PLL_SRIF_DPLL2_SEL_CNT_SHIFT)
1411         #define QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT        2
1412         #define QCA_PLL_SRIF_DPLL2_TEST_IN_MASK         BITS(QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT, 10)
1413         #define QCA_PLL_SRIF_DPLL2_PHASE_SHIFT_SHIFT    12
1414         #define QCA_PLL_SRIF_DPLL2_PHASE_SHIFT_MASK     BITS(QCA_PLL_SRIF_DPLL2_PHASE_SHIFT_SHIFT, 7)
1415         #define QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT         19
1416         #define QCA_PLL_SRIF_DPLL2_OUTDIV_MASK          BITS(QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT, 3)
1417         #define QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT         22
1418         #define QCA_PLL_SRIF_DPLL2_PLLPWD_MASK          BIT(QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT)
1419         #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT       23
1420         #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_MASK        BIT(QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT)
1421         #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT     24
1422         #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_MASK      BIT(QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT)
1423         #define QCA_PLL_SRIF_DPLL2_KD_SHIFT             25
1424         #define QCA_PLL_SRIF_DPLL2_KD_MASK              BITS(QCA_PLL_SRIF_DPLL2_KD_SHIFT, 4)
1425         #define QCA_PLL_SRIF_DPLL2_KI_SHIFT             29
1426         #define QCA_PLL_SRIF_DPLL2_KI_MASK              BITS(QCA_PLL_SRIF_DPLL2_KD_SHIFT, 2)
1427         #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT      31
1428         #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_MASK       BIT(QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT)
1429 #else
1430         #define QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT        0
1431         #define QCA_PLL_SRIF_DPLL2_TEST_IN_MASK         BITS(QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT, 7)
1432         #define QCA_PLL_SRIF_DPLL2_DELTA_SHIFT          7
1433         #define QCA_PLL_SRIF_DPLL2_DELTA_MASK           BITS(QCA_PLL_SRIF_DPLL2_DELTA_SHIFT, 6)
1434         #define QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT         13
1435         #define QCA_PLL_SRIF_DPLL2_OUTDIV_MASK          BITS(QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT, 2)
1436         #define QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT         16
1437         #define QCA_PLL_SRIF_DPLL2_PLLPWD_MASK          BIT(QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT)
1438         #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT       17
1439         #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_MASK        BIT(QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT)
1440         #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT     18
1441         #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_MASK      BIT(QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT)
1442         #define QCA_PLL_SRIF_DPLL2_KD_SHIFT             19
1443         #define QCA_PLL_SRIF_DPLL2_KD_MASK              BITS(QCA_PLL_SRIF_DPLL2_KD_SHIFT, 7)
1444         #define QCA_PLL_SRIF_DPLL2_KI_SHIFT             26
1445         #define QCA_PLL_SRIF_DPLL2_KI_MASK              BITS(QCA_PLL_SRIF_DPLL2_KI_SHIFT, 4)
1446         #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT      30
1447         #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_MASK       BIT(QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT)
1448         #define QCA_PLL_SRIF_DPLL2_RANGE_SHIFT          31
1449         #define QCA_PLL_SRIF_DPLL2_RANGE_MASK           BIT(QCA_PLL_SRIF_DPLL2_RANGE_SHIFT)
1450 #endif
1451
1452 /* DPLL3 (common for BB, CPU, AUD, DDR and PCIE) */
1453 /* DPLL4 (common for BB, CPU, AUD, DDR and PCIE) */
1454
1455 /*
1456  * TODO: check and confirm DPLL3/4 register structure
1457  */
1458
1459 /*
1460  * Reset control registers
1461  */
1462 #define QCA_RST_GENERAL_TIMER1_REG              QCA_RST_BASE_REG + 0x00
1463 #define QCA_RST_GENERAL_TIMER1_RELOAD_REG       QCA_RST_BASE_REG + 0x04
1464 #define QCA_RST_WATCHDOG_TIMER_CTRL_REG         QCA_RST_BASE_REG + 0x08
1465 #define QCA_RST_WATCHDOG_TIMER_REG              QCA_RST_BASE_REG + 0x0C
1466 #define QCA_RST_MISC_INTERRUPT_STATUS_REG       QCA_RST_BASE_REG + 0x10
1467 #define QCA_RST_MISC_INTERRUPT_MASK_REG         QCA_RST_BASE_REG + 0x14
1468 #define QCA_RST_GLOBALINTERRUPT_STATUS_REG      QCA_RST_BASE_REG + 0x18
1469 #define QCA_RST_RESET_REG                       QCA_RST_BASE_REG + 0x1C
1470 #define QCA_RST_REVISION_ID_REG                 QCA_RST_BASE_REG + 0x90
1471 #define QCA_RST_GENERAL_TIMER2_REG              QCA_RST_BASE_REG + 0x94
1472 #define QCA_RST_GENERAL_TIMER2_RELOAD_REG       QCA_RST_BASE_REG + 0x98
1473 #define QCA_RST_GENERAL_TIMER3_REG              QCA_RST_BASE_REG + 0x9C
1474 #define QCA_RST_GENERAL_TIMER3_RELOAD_REG       QCA_RST_BASE_REG + 0xA0
1475 #define QCA_RST_GENERAL_TIMER4_REG              QCA_RST_BASE_REG + 0xA4
1476 #define QCA_RST_GENERAL_TIMER4_RELOAD_REG       QCA_RST_BASE_REG + 0xA8
1477
1478 #if (SOC_TYPE & QCA_AR933X_SOC)
1479         #define QCA_RST_BOOTSTRAP_REG           QCA_RST_BASE_REG + 0xAC
1480 #else
1481         #define QCA_RST_BOOTSTRAP_REG           QCA_RST_BASE_REG + 0xB0
1482 #endif
1483
1484 #if (SOC_TYPE & QCA_QCA956X_SOC)
1485         #define QCA_RST_MISC2_REG               QCA_RST_BASE_REG + 0xB8
1486         #define QCA_RST_RESET2_REG              QCA_RST_BASE_REG + 0xC0
1487 #else
1488         #define QCA_RST_MISC2_REG               QCA_RST_BASE_REG + 0xBC
1489         #define QCA_RST_RESET2_REG              QCA_RST_BASE_REG + 0xC4
1490 #endif
1491
1492 /*
1493  * Reset control registers BIT fields
1494  */
1495
1496 /* RST_WATCHDOG_TIMER_CTRL (Watchdog timer control) */
1497 #define QCA_RST_WATCHDOG_TIMER_CTRL_ACTION_SHIFT        0
1498 #define QCA_RST_WATCHDOG_TIMER_CTRL_ACTION_MASK         BITS(QCA_RST_WATCHDOG_TIMER_CTRL_ACTION_SHIFT, 2)
1499 #define QCA_RST_WATCHDOG_TIMER_CTRL_LAST_SHIFT          31
1500 #define QCA_RST_WATCHDOG_TIMER_CTRL_LAST_MASK           BIT(QCA_RST_WATCHDOG_TIMER_CTRL_LAST_SHIFT)
1501
1502 /* RST_BOOTSTRAP (Reset bootstrap) */
1503 #if (SOC_TYPE & QCA_AR933X_SOC)
1504         #define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT         0
1505 #elif (SOC_TYPE & QCA_QCA956X_SOC)
1506         #define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT         2
1507 #else
1508         #define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT         4
1509 #endif
1510 #define QCA_RST_BOOTSTRAP_REF_CLK_MASK                  BIT(QCA_RST_BOOTSTRAP_REF_CLK_SHIFT)
1511 #define QCA_RST_BOOTSTRAP_REF_CLK_25M_VAL               0x0
1512 #define QCA_RST_BOOTSTRAP_REF_CLK_40M_VAL               0x1
1513
1514 #if (SOC_TYPE & QCA_AR933X_SOC)
1515         #define QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT    3
1516         #define QCA_RST_BOOTSTRAP_USB_MODE_DEV_MASK     BIT(QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT)
1517         #define QCA_RST_BOOTSTRAP_EEPBUSY_SHIFT         4
1518         #define QCA_RST_BOOTSTRAP_EEPBUSY_MASK          BIT(QCA_RST_BOOTSTRAP_EEPBUSY_SHIFT)
1519         #define QCA_RST_BOOTSTRAP_MEM_TYPE_SHIFT        12
1520         #define QCA_RST_BOOTSTRAP_MEM_TYPE_MASK         BITS(QCA_RST_BOOTSTRAP_MEM_TYPE_SHIFT, 2)
1521         #define QCA_RST_BOOTSTRAP_JTAG_APB_SEL_SHIFT    16
1522         #define QCA_RST_BOOTSTRAP_JTAG_APB_SEL_MASK     BIT(QCA_RST_BOOTSTRAP_JTAG_APB_SEL_SHIFT)
1523         #define QCA_RST_BOOTSTRAP_MDIO_SLAVE_EN_SHIFT   17
1524         #define QCA_RST_BOOTSTRAP_MDIO_SLAVE_EN_MASK    BIT(QCA_RST_BOOTSTRAP_MDIO_SLAVE_EN_SHIFT)
1525         #define QCA_RST_BOOTSTRAP_MDIO_GPIO_EN_SHIFT    18
1526         #define QCA_RST_BOOTSTRAP_MDIO_GPIO_EN_MASK     BIT(QCA_RST_BOOTSTRAP_MDIO_GPIO_EN_SHIFT)
1527
1528         #define QCA_RST_BOOTSTRAP_MEM_TYPE_SDR_VAL      0
1529         #define QCA_RST_BOOTSTRAP_MEM_TYPE_DDR1_VAL     1
1530         #define QCA_RST_BOOTSTRAP_MEM_TYPE_DDR2_VAL     2
1531 #else
1532         #define QCA_RST_BOOTSTRAP_MEM_TYPE_SHIFT        0
1533
1534         /* v2 does not support SDR, but we can read reserved bit and make it universal */
1535         #if (SOC_TYPE & QCA_QCA953X_SOC)
1536                 #define QCA_RST_BOOTSTRAP_MEM_TYPE_MASK BITS(QCA_RST_BOOTSTRAP_MEM_TYPE_SHIFT, 2)
1537         #else
1538                 #define QCA_RST_BOOTSTRAP_MEM_TYPE_MASK BIT(QCA_RST_BOOTSTRAP_MEM_TYPE_SHIFT)
1539         #endif
1540
1541         #define QCA_RST_BOOTSTRAP_BOOT_SEL_SHIFT        2
1542         #define QCA_RST_BOOTSTRAP_BOOT_SEL_MASK         BIT(QCA_RST_BOOTSTRAP_BOOT_SEL_SHIFT)
1543         #define QCA_RST_BOOTSTRAP_DDR_WIDTH_32_SHIFT    3
1544         #define QCA_RST_BOOTSTRAP_DDR_WIDTH_32_MASK     BIT(QCA_RST_BOOTSTRAP_DDR_WIDTH_32_SHIFT)
1545         #define QCA_RST_BOOTSTRAP_JTAG_MODE_SHIFT       5
1546         #define QCA_RST_BOOTSTRAP_JTAG_MODE_MASK        BIT(QCA_RST_BOOTSTRAP_JTAG_MODE_SHIFT)
1547         #define QCA_RST_BOOTSTRAP_PCIE_RC_MODE_SHIFT    6
1548         #define QCA_RST_BOOTSTRAP_PCIE_RC_MODE_MASK     BIT(QCA_RST_BOOTSTRAP_PCIE_RC_MODE_SHIFT)
1549         #define QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT    7
1550         #define QCA_RST_BOOTSTRAP_USB_MODE_DEV_MASK     BIT(QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT)
1551
1552         #define QCA_RST_BOOTSTRAP_MEM_TYPE_SDR_VAL      3
1553         #define QCA_RST_BOOTSTRAP_MEM_TYPE_DDR1_VAL     1
1554         #define QCA_RST_BOOTSTRAP_MEM_TYPE_DDR2_VAL     0
1555 #endif
1556
1557 /* RST_RESET */
1558 #if (SOC_TYPE & QCA_QCA956X_SOC)
1559         #define QCA_RST_RESET_ETH_SWITCH_RST_SHIFT              0
1560         #define QCA_RST_RESET_ETH_SWITCH_RST_MASK               BIT(QCA_RST_RESET_ETH_SWITCH_RST_SHIFT)
1561         #define QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT             2
1562         #define QCA_RST_RESET_ETH_SWITCH_ARST_MASK              BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
1563 #else
1564         #define QCA_RST_RESET_I2S_RST_SHIFT                     0
1565         #define QCA_RST_RESET_I2S_RST_MASK                      BIT(QCA_RST_RESET_I2S_RST_SHIFT)
1566         #define QCA_RST_RESET_LUT_RST_SHIFT                     2
1567         #define QCA_RST_RESET_LUT_RST_MASK                      BIT(QCA_RST_RESET_LUT_RST_SHIFT)
1568 #endif
1569
1570 #define QCA_RST_RESET_MBOX_RST_SHIFT                            1
1571 #define QCA_RST_RESET_MBOX_RST_MASK                             BIT(QCA_RST_RESET_MBOX_RST_SHIFT)
1572 #define QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_SHIFT               3
1573 #define QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_MASK                BIT(QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_SHIFT)
1574 #define QCA_RST_RESET_USB_PHY_RST_SHIFT                         4
1575 #define QCA_RST_RESET_USB_PHY_RST_MASK                          BIT(QCA_RST_RESET_USB_PHY_RST_SHIFT)
1576 #define QCA_RST_RESET_USB_HOST_RST_SHIFT                        5
1577 #define QCA_RST_RESET_USB_HOST_RST_MASK                         BIT(QCA_RST_RESET_USB_HOST_RST_SHIFT)
1578
1579 #if (SOC_TYPE & QCA_AR933X_SOC)
1580         #define QCA_RST_RESET_SLIC_RST_SHIFT                    6
1581         #define QCA_RST_RESET_SLIC_RST_MASK                     BIT(QCA_RST_RESET_SLIC_RST_SHIFT)
1582 #else
1583         #define QCA_RST_RESET_PCIE_RST_SHIFT                    6
1584         #define QCA_RST_RESET_PCIE_RST_MASK                     BIT(QCA_RST_RESET_PCIE_RST_SHIFT)
1585         #define QCA_RST_RESET_SLIC_RST_SHIFT                    30
1586         #define QCA_RST_RESET_SLIC_RST_MASK                     BIT(QCA_RST_RESET_SLIC_RST_SHIFT)
1587 #endif
1588
1589 #define QCA_RST_RESET_PCIE_PHY_RST_SHIFT                        7
1590 #define QCA_RST_RESET_PCIE_PHY_RST_MASK                         BIT(QCA_RST_RESET_PCIE_PHY_RST_SHIFT)
1591
1592 #if (SOC_TYPE & QCA_QCA955X_SOC) |\
1593     (SOC_TYPE & QCA_QCA956X_SOC)
1594         #define QCA_RST_RESET_ETH_SGMII_RST_SHIFT               8
1595         #define QCA_RST_RESET_ETH_SGMII_RST_MASK                BIT(QCA_RST_RESET_ETH_SGMII_RST_SHIFT)
1596 #else
1597         #define QCA_RST_RESET_ETH_SWITCH_RST_SHIFT              8
1598         #define QCA_RST_RESET_ETH_SWITCH_RST_MASK               BIT(QCA_RST_RESET_ETH_SWITCH_RST_SHIFT)
1599 #endif
1600
1601 #define QCA_RST_RESET_GE0_MAC_RST_SHIFT                         9
1602 #define QCA_RST_RESET_GE0_MAC_RST_MASK                          BIT(QCA_RST_RESET_GE0_MAC_RST_SHIFT)
1603 #define QCA_RST_RESET_HOST_DMA_INT_SHIFT                        10
1604 #define QCA_RST_RESET_HOST_DMA_INT_MASK                         BIT(QCA_RST_RESET_HOST_DMA_INT_SHIFT)
1605
1606 #if (SOC_TYPE & QCA_AR933X_SOC)
1607         #define QCA_RST_RESET_WLAN_RST_SHIFT                    11
1608         #define QCA_RST_RESET_WLAN_RST_MASK                     BIT(QCA_RST_RESET_WLAN_RST_SHIFT)
1609 #else
1610         #define QCA_RST_RESET_USB_PHY_ARST_SHIFT                11
1611         #define QCA_RST_RESET_USB_PHY_ARST_MASK                 BIT(QCA_RST_RESET_USB_PHY_ARST_SHIFT)
1612 #endif
1613
1614 #if (SOC_TYPE & QCA_AR933X_SOC)
1615         #define QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT             14
1616         #define QCA_RST_RESET_ETH_SWITCH_ARST_MASK              BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
1617 #else
1618         #if (SOC_TYPE & QCA_QCA955X_SOC) |\
1619             (SOC_TYPE & QCA_QCA956X_SOC)
1620                 #define QCA_RST_RESET_ETH_SGMII_ARST_SHIFT      12
1621                 #define QCA_RST_RESET_ETH_SGMII_ARST_MASK       BIT(QCA_RST_RESET_ETH_SGMII_ARST_SHIFT)
1622         #else
1623                 #define QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT     12
1624                 #define QCA_RST_RESET_ETH_SWITCH_ARST_MASK      BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
1625         #endif
1626
1627         #define QCA_RST_RESET_NAND_FLASH_RST_SHIFT              14
1628         #define QCA_RST_RESET_NAND_FLASH_RST_MASK               BIT(QCA_RST_RESET_NAND_FLASH_RST_SHIFT)
1629 #endif
1630
1631 #define QCA_RST_RESET_GE1_MAC_RST_SHIFT                         13
1632 #define QCA_RST_RESET_GE1_MAC_RST_MASK                          BIT(QCA_RST_RESET_GE1_MAC_RST_SHIFT)
1633 #define QCA_RST_RESET_USB_PHY_PLLPWD_EXT_SHIFT                  15
1634 #define QCA_RST_RESET_USB_PHY_PLLPWD_EXT_MASK                   BIT(QCA_RST_RESET_USB_PHY_PLLPWD_EXT_SHIFT)
1635 #define QCA_RST_RESET_DDR_RST_SHIFT                             16
1636 #define QCA_RST_RESET_DDR_RST_MASK                              BIT(QCA_RST_RESET_DDR_RST_SHIFT)
1637 #define QCA_RST_RESET_HSUART_RST_SHIFT                          17
1638 #define QCA_RST_RESET_HSUART_RST_MASK                           BIT(QCA_RST_RESET_HSUART_RST_SHIFT)
1639 #define QCA_RST_RESET_PCIEEP_RST_SHIFT                          18
1640 #define QCA_RST_RESET_PCIEEP_RST_MASK                           BIT(QCA_RST_RESET_PCIEEP_RST_SHIFT)
1641 #define QCA_RST_RESET_HOST_DMA_RST_INT_SHIFT                    19
1642 #define QCA_RST_RESET_HOST_DMA_RST_INT_MASK                     BIT(QCA_RST_RESET_HOST_DMA_RST_INT_SHIFT)
1643 #define QCA_RST_RESET_CPU_COLD_RST_SHIFT                        20
1644 #define QCA_RST_RESET_CPU_COLD_RST_MASK                         BIT(QCA_RST_RESET_CPU_COLD_RST_SHIFT)
1645 #define QCA_RST_RESET_CPU_NMI_SHIFT                             21
1646 #define QCA_RST_RESET_CPU_NMI_MASK                              BIT(QCA_RST_RESET_CPU_NMI_SHIFT)
1647 #define QCA_RST_RESET_GE0_MDIO_RST_SHIFT                        22
1648 #define QCA_RST_RESET_GE0_MDIO_RST_MASK                         BIT(QCA_RST_RESET_GE0_MDIO_RST_SHIFT)
1649 #define QCA_RST_RESET_GE1_MDIO_RST_SHIFT                        23
1650 #define QCA_RST_RESET_GE1_MDIO_RST_MASK                         BIT(QCA_RST_RESET_GE1_MDIO_RST_SHIFT)
1651 #define QCA_RST_RESET_FULL_CHIP_RST_SHIFT                       24
1652 #define QCA_RST_RESET_FULL_CHIP_RST_MASK                        BIT(QCA_RST_RESET_FULL_CHIP_RST_SHIFT)
1653 #define QCA_RST_RESET_CHECKSUM_ACC_RST_SHIFT                    25
1654 #define QCA_RST_RESET_CHECKSUM_ACC_RST_MASK                     BIT(QCA_RST_RESET_CHECKSUM_ACC_RST_SHIFT)
1655 #define QCA_RST_RESET_PCIEEP_RST_INT_SHIFT                      26
1656 #define QCA_RST_RESET_PCIEEP_RST_INT_MASK                       BIT(QCA_RST_RESET_PCIEEP_RST_INT_SHIFT)
1657 #define QCA_RST_RESET_RTC_RST_SHIFT                             27
1658 #define QCA_RST_RESET_RTC_RST_MASK                              BIT(QCA_RST_RESET_RTC_RST_SHIFT)
1659 #define QCA_RST_RESET_EXT_RST_SHIFT                             28
1660 #define QCA_RST_RESET_EXT_RST_MASK                              BIT(QCA_RST_RESET_EXT_RST_SHIFT)
1661
1662 #if (SOC_TYPE & QCA_AR934X_SOC) |\
1663     (SOC_TYPE & QCA_QCA955X_SOC)
1664         #define QCA_RST_RESET_HOST_DMA_RST_SHIFT                29
1665         #define QCA_RST_RESET_HOST_DMA_RST_MASK                 BIT(QCA_RST_RESET_HOST_DMA_RST_SHIFT)
1666 #elif (SOC_TYPE & QCA_QCA953X_SOC)
1667         #define QCA_RST_RESET_USB_EXT_PWR_SHIFT                 29
1668         #define QCA_RST_RESET_USB_EXT_PWR_MASK                  BIT(QCA_RST_RESET_USB_EXT_PWR_SHIFT)
1669 #endif
1670
1671 #define QCA_RST_RESET_HOST_DMA_RST_STATUS_SHIFT                 31
1672 #define QCA_RST_RESET_HOST_DMA_RST_STATUS_MASK                  BIT(QCA_RST_RESET_HOST_DMA_RST_STATUS_SHIFT)
1673
1674 /* RST_RESET2 (QCA955x and QCA956x only) */
1675 #define QCA_RST_RESET2_USB2_MODE_DEV_SHIFT              0
1676 #define QCA_RST_RESET2_USB2_MODE_DEV_MASK               BIT(QCA_RST_RESET2_USB2_MODE_DEV_SHIFT)
1677 #define QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_SHIFT     3
1678 #define QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_MASK      BIT(QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_SHIFT)
1679 #define QCA_RST_RESET2_USB2_PHY_RST_SHIFT               4
1680 #define QCA_RST_RESET2_USB2_PHY_RST_MASK                BIT(QCA_RST_RESET2_USB2_PHY_RST_SHIFT)
1681 #define QCA_RST_RESET2_USB2_HOST_RST_SHIFT              5
1682 #define QCA_RST_RESET2_USB2_HOST_RST_MASK               BIT(QCA_RST_RESET2_USB2_HOST_RST_SHIFT)
1683 #define QCA_RST_RESET2_PCIE2_RST_SHIFT                  6
1684 #define QCA_RST_RESET2_PCIE2_RST_MASK                   BIT(QCA_RST_RESET2_PCIE2_RST_SHIFT)
1685 #define QCA_RST_RESET2_PCIE2_PHY_RST_SHIFT              7
1686 #define QCA_RST_RESET2_PCIE2_PHY_RST_MASK               BIT(QCA_RST_RESET2_PCIE2_PHY_RST_SHIFT)
1687 #define QCA_RST_RESET2_USB2_PHY_ARST_SHIFT              11
1688 #define QCA_RST_RESET2_USB2_PHY_ARST_MASK               BIT(QCA_RST_RESET2_USB2_PHY_ARST_SHIFT)
1689 #define QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_SHIFT        15
1690 #define QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_MASK         BIT(QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_SHIFT)
1691 #define QCA_RST_RESET2_USB_EXT_PWR_SHIFT                16
1692 #define QCA_RST_RESET2_USB_EXT_PWR_MASK                 BIT(QCA_RST_RESET2_USB_EXT_PWR_SHIFT)
1693 #define QCA_RST_RESET2_USB2_EXT_PWR_SHIFT               17
1694 #define QCA_RST_RESET2_USB2_EXT_PWR_MASK                BIT(QCA_RST_RESET2_USB2_EXT_PWR_SHIFT)
1695 #define QCA_RST_RESET2_EP_MODE_SHIFT                    18
1696 #define QCA_RST_RESET2_EP_MODE_MASK                     BIT(QCA_RST_RESET2_EP_MODE_SHIFT)
1697
1698 /* RST_REVISION_ID (Chip revision ID) */
1699 #define QCA_RST_REVISION_ID_MAJOR_SHIFT         4
1700 #define QCA_RST_REVISION_ID_MAJOR_MASK          BITS(QCA_RST_REVISION_ID_MAJOR_SHIFT, 12)
1701
1702 #if (SOC_TYPE & QCA_AR933X_SOC)
1703         #define QCA_RST_REVISION_ID_REV_SHIFT   0
1704         #define QCA_RST_REVISION_ID_REV_MASK    BITS(QCA_RST_REVISION_ID_REV_SHIFT, 2)
1705 #else
1706         #define QCA_RST_REVISION_ID_REV_SHIFT   0
1707         #define QCA_RST_REVISION_ID_REV_MASK    BITS(QCA_RST_REVISION_ID_REV_SHIFT, 4)
1708 #endif
1709
1710 #define QCA_RST_REVISION_ID_MAJOR_AR9330_VAL            0x0110
1711 #define QCA_RST_REVISION_ID_MAJOR_AR9331_VAL            0x1110
1712 #define QCA_RST_REVISION_ID_MAJOR_AR9341_VAL            0x0120
1713 #define QCA_RST_REVISION_ID_MAJOR_AR9344_VAL            0x2120
1714 #define QCA_RST_REVISION_ID_MAJOR_QCA953X_VAL           0x0140
1715 #define QCA_RST_REVISION_ID_MAJOR_QCA953X_V2_VAL        0x0160
1716 #define QCA_RST_REVISION_ID_MAJOR_QCA9558_VAL           0x1130
1717
1718 /* RST_MISC2 register (Miscellaneous CPU control bits) */
1719 #define QCA_RST_MISC2_PERSTN_RCPHY_SHIFT        13
1720 #define QCA_RST_MISC2_PERSTN_RCPHY_MASK         BIT(QCA_RST_MISC2_PERSTN_RCPHY_SHIFT)
1721 #define QCA_RST_MISC2_PERSTN_RCPHY2_SHIFT       14
1722 #define QCA_RST_MISC2_PERSTN_RCPHY2_MASK        BIT(QCA_RST_MISC2_PERSTN_RCPHY2_SHIFT)
1723
1724 /*
1725  * PCIE RC control registers
1726  */
1727 #define QCA_PCIE_RC0_CTRL_APP_REG               QCA_PCIE_RC0_CTRL_BASE_REG + 0x00
1728 #define QCA_PCIE_RC1_CTRL_APP_REG               QCA_PCIE_RC1_CTRL_BASE_REG + 0x00
1729 #define QCA_PCIE_RC0_CTRL_AER_REG               QCA_PCIE_RC0_CTRL_BASE_REG + 0x04
1730 #define QCA_PCIE_RC1_CTRL_AER_REG               QCA_PCIE_RC1_CTRL_BASE_REG + 0x04
1731 #define QCA_PCIE_RC0_CTRL_PWR_MGMT_REG          QCA_PCIE_RC0_CTRL_BASE_REG + 0x08
1732 #define QCA_PCIE_RC1_CTRL_PWR_MGMT_REG          QCA_PCIE_RC1_CTRL_BASE_REG + 0x08
1733 #define QCA_PCIE_RC0_CTRL_ELEC_REG              QCA_PCIE_RC0_CTRL_BASE_REG + 0x0C
1734 #define QCA_PCIE_RC1_CTRL_ELEC_REG              QCA_PCIE_RC1_CTRL_BASE_REG + 0x0C
1735 #define QCA_PCIE_RC0_CTRL_CFG_REG               QCA_PCIE_RC0_CTRL_BASE_REG + 0x10
1736 #define QCA_PCIE_RC1_CTRL_CFG_REG               QCA_PCIE_RC1_CTRL_BASE_REG + 0x10
1737 #define QCA_PCIE_RC0_CTRL_RX_CNTL_REG           QCA_PCIE_RC0_CTRL_BASE_REG + 0x14
1738 #define QCA_PCIE_RC1_CTRL_RX_CNTL_REG           QCA_PCIE_RC1_CTRL_BASE_REG + 0x14
1739 #define QCA_PCIE_RC0_CTRL_RST_REG               QCA_PCIE_RC0_CTRL_BASE_REG + 0x18
1740 #define QCA_PCIE_RC1_CTRL_RST_REG               QCA_PCIE_RC1_CTRL_BASE_REG + 0x18
1741 #define QCA_PCIE_RC0_CTRL_DBG_REG               QCA_PCIE_RC0_CTRL_BASE_REG + 0x1C
1742 #define QCA_PCIE_RC1_CTRL_DBG_REG               QCA_PCIE_RC1_CTRL_BASE_REG + 0x1C
1743 #define QCA_PCIE_RC0_CTRL_PHY_RW_DATA_REG       QCA_PCIE_RC0_CTRL_BASE_REG + 0x24
1744 #define QCA_PCIE_RC1_CTRL_PHY_RW_DATA_REG       QCA_PCIE_RC1_CTRL_BASE_REG + 0x24
1745 #define QCA_PCIE_RC0_CTRL_PHY_TRG_RD_LOAD_REG   QCA_PCIE_RC0_CTRL_BASE_REG + 0x28
1746 #define QCA_PCIE_RC1_CTRL_PHY_TRG_RD_LOAD_REG   QCA_PCIE_RC1_CTRL_BASE_REG + 0x28
1747 #define QCA_PCIE_RC0_CTRL_PHY_CFG_DATA_REG      QCA_PCIE_RC0_CTRL_BASE_REG + 0x2C
1748 #define QCA_PCIE_RC1_CTRL_PHY_CFG_DATA_REG      QCA_PCIE_RC1_CTRL_BASE_REG + 0x2C
1749 #define QCA_PCIE_RC0_CTRL_MAC_PHY_REG           QCA_PCIE_RC0_CTRL_BASE_REG + 0x30
1750 #define QCA_PCIE_RC1_CTRL_MAC_PHY_REG           QCA_PCIE_RC1_CTRL_BASE_REG + 0x30
1751 #define QCA_PCIE_RC0_CTRL_PHY_MAC_REG           QCA_PCIE_RC0_CTRL_BASE_REG + 0x34
1752 #define QCA_PCIE_RC1_CTRL_PHY_MAC_REG           QCA_PCIE_RC1_CTRL_BASE_REG + 0x34
1753 #define QCA_PCIE_RC0_CTRL_SIDEBAND1_REG         QCA_PCIE_RC0_CTRL_BASE_REG + 0x38
1754 #define QCA_PCIE_RC1_CTRL_SIDEBAND1_REG         QCA_PCIE_RC1_CTRL_BASE_REG + 0x38
1755 #define QCA_PCIE_RC0_CTRL_SIDEBAND2_REG         QCA_PCIE_RC0_CTRL_BASE_REG + 0x3C
1756 #define QCA_PCIE_RC1_CTRL_SIDEBAND2_REG         QCA_PCIE_RC1_CTRL_BASE_REG + 0x3C
1757 #define QCA_PCIE_RC0_CTRL_SPARE_REG             QCA_PCIE_RC0_CTRL_BASE_REG + 0x40
1758 #define QCA_PCIE_RC1_CTRL_SPARE_REG             QCA_PCIE_RC1_CTRL_BASE_REG + 0x40
1759 #define QCA_PCIE_RC0_CTRL_MSI_ADDR_REG          QCA_PCIE_RC0_CTRL_BASE_REG + 0x44
1760 #define QCA_PCIE_RC1_CTRL_MSI_ADDR_REG          QCA_PCIE_RC1_CTRL_BASE_REG + 0x44
1761 #define QCA_PCIE_RC0_CTRL_MSI_DATA_REG          QCA_PCIE_RC0_CTRL_BASE_REG + 0x48
1762 #define QCA_PCIE_RC1_CTRL_MSI_DATA_REG          QCA_PCIE_RC1_CTRL_BASE_REG + 0x48
1763 #define QCA_PCIE_RC0_CTRL_INT_STATUS_REG        QCA_PCIE_RC0_CTRL_BASE_REG + 0x4C
1764 #define QCA_PCIE_RC1_CTRL_INT_STATUS_REG        QCA_PCIE_RC1_CTRL_BASE_REG + 0x4C
1765 #define QCA_PCIE_RC0_CTRL_INT_MASK_REG          QCA_PCIE_RC0_CTRL_BASE_REG + 0x50
1766 #define QCA_PCIE_RC1_CTRL_INT_MASK_REG          QCA_PCIE_RC1_CTRL_BASE_REG + 0x50
1767 #define QCA_PCIE_RC0_CTRL_ERR_CNT_REG           QCA_PCIE_RC0_CTRL_BASE_REG + 0x54
1768 #define QCA_PCIE_RC1_CTRL_ERR_CNT_REG           QCA_PCIE_RC1_CTRL_BASE_REG + 0x54
1769 #define QCA_PCIE_RC0_CTRL_REQ_LAT_INT_REG       QCA_PCIE_RC0_CTRL_BASE_REG + 0x58
1770 #define QCA_PCIE_RC1_CTRL_REQ_LAT_INT_REG       QCA_PCIE_RC1_CTRL_BASE_REG + 0x58
1771 #define QCA_PCIE_RC0_CTRL_MISC_REG              QCA_PCIE_RC0_CTRL_BASE_REG + 0x5C
1772 #define QCA_PCIE_RC1_CTRL_MISC_REG              QCA_PCIE_RC1_CTRL_BASE_REG + 0x5C
1773
1774 /*
1775  * PCIE RC control registers BIT fields
1776  */
1777
1778 /* PCIE_APP register (PCIE application control) */
1779 #define QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_SHIFT            0
1780 #define QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_MASK             BIT(QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_SHIFT)
1781 #define QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_SHIFT          1
1782 #define QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_MASK           BIT(QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_SHIFT)
1783 #define QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_SHIFT      2
1784 #define QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_MASK       BIT(QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_SHIFT)
1785 #define QCA_PCIE_RCX_CTRL_APP_INIT_RST_SHIFT            3
1786 #define QCA_PCIE_RCX_CTRL_APP_INIT_RST_MASK             BIT(QCA_PCIE_RCX_CTRL_APP_INIT_RST_SHIFT)
1787 #define QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_SHIFT 4
1788 #define QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_MASK  BITS(QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_SHIFT, 2)
1789 #define QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_SHIFT  6
1790 #define QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_MASK   BITS(QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_SHIFT, 6)
1791 #define QCA_PCIE_RCX_CTRL_APP_CFG_BE_SHIFT              12
1792 #define QCA_PCIE_RCX_CTRL_APP_CFG_BE_MASK               BITS(QCA_PCIE_RCX_CTRL_APP_CFG_BE_SHIFT, 4)
1793 #define QCA_PCIE_RCX_CTRL_APP_BAR_MSN_SHIFT             16
1794 #define QCA_PCIE_RCX_CTRL_APP_BAR_MSN_MASK              BITS(QCA_PCIE_RCX_CTRL_APP_BAR_MSN_SHIFT, 4)
1795 #define QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_SHIFT            20
1796 #define QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_MASK             BITS(QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_SHIFT, 2)
1797
1798 /* PCIE_RESET register (PCIE reset) */
1799 #define QCA_PCIE_RCX_CTRL_RST_LINK_UP_SHIFT             0
1800 #define QCA_PCIE_RCX_CTRL_RST_LINK_UP_MASK              BIT(QCA_PCIE_RCX_CTRL_RST_LINK_UP_SHIFT)
1801 #define QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_SHIFT        1
1802 #define QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_MASK         BIT(QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_SHIFT)
1803 #define QCA_PCIE_RCX_CTRL_RST_EP_RST_L_SHIFT            2
1804 #define QCA_PCIE_RCX_CTRL_RST_EP_RST_L_MASK             BIT(QCA_PCIE_RCX_CTRL_RST_EP_RST_L_SHIFT)
1805
1806 /*
1807  * RTC registers
1808  */
1809 #define QCA_RTC_RST_CTRL_REG            QCA_RTC_BASE_REG + 0x00
1810 #define QCA_RTC_XTAL_CTRL_REG           QCA_RTC_BASE_REG + 0x04
1811 #define QCA_RTC_WLAN_PLL_CTRL_REG       QCA_RTC_BASE_REG + 0x14
1812 #define QCA_RTC_PLL_SETTLE_REG          QCA_RTC_BASE_REG + 0x18
1813 #define QCA_RTC_XTAL_SETTLE_REG         QCA_RTC_BASE_REG + 0x1C
1814 #define QCA_RTC_CLK_OUT_REG             QCA_RTC_BASE_REG + 0x20
1815 #define QCA_RTC_RST_CAUSE_REG           QCA_RTC_BASE_REG + 0x28
1816 #define QCA_RTC_SYS_SLEEP_REG           QCA_RTC_BASE_REG + 0x2C
1817 #define QCA_RTC_KEEP_AWAKE_REG          QCA_RTC_BASE_REG + 0x34
1818 #define QCA_RTC_DERIVED_RTC_CLK_REG     QCA_RTC_BASE_REG + 0x38
1819 #define QCA_RTC_PLL_CTRL2_REG           QCA_RTC_BASE_REG + 0x3C
1820 #define QCA_RTC_SYNC_RST_REG            QCA_RTC_BASE_REG + 0x40
1821 #define QCA_RTC_SYNC_STATUS_REG         QCA_RTC_BASE_REG + 0x44
1822 #define QCA_RTC_SYNC_DERIVED_REG        QCA_RTC_BASE_REG + 0x48
1823 #define QCA_RTC_SYNC_FORCE_WAKE_REG     QCA_RTC_BASE_REG + 0x4C
1824 #define QCA_RTC_INTERRUPT_CAUSE_REG     QCA_RTC_BASE_REG + 0x50
1825 #define QCA_RTC_INTERRUPT_EN_REG        QCA_RTC_BASE_REG + 0x54
1826 #define QCA_RTC_INTERRUPT_MASK_REG      QCA_RTC_BASE_REG + 0x58
1827
1828 /*
1829  * RTC registers BIT fields
1830  */
1831
1832 /* RESET_CONTROL register (RTC reset control) */
1833 #define QCA_RTC_RST_CTRL_MAC_WARM_RST_SHIFT     0
1834 #define QCA_RTC_RST_CTRL_MAC_WARM_RST_MASK      BIT(QCA_RTC_RST_CTRL_MAC_WARM_RST_SHIFT)
1835 #define QCA_RTC_RST_CTRL_MAC_COLD_RST_SHIFT     1
1836 #define QCA_RTC_RST_CTRL_MAC_COLD_RST_MASK      BIT(QCA_RTC_RST_CTRL_MAC_COLD_RST_SHIFT)
1837 #define QCA_RTC_RST_CTRL_WARM_RST_SHIFT         2
1838 #define QCA_RTC_RST_CTRL_WARM_RST_MASK          BIT(QCA_RTC_RST_CTRL_WARM_RST_SHIFT)
1839 #define QCA_RTC_RST_CTRL_COLD_RST_SHIFT         3
1840 #define QCA_RTC_RST_CTRL_COLD_RST_MASK          BIT(QCA_RTC_RST_CTRL_COLD_RST_SHIFT)
1841
1842 /* RESET_CAUSE register (Reset cause) */
1843 #define QCA_RTC_RST_CAUSE_LAST_SHIFT    0
1844 #define QCA_RTC_RST_CAUSE_LAST_MASK     BITS(QCA_RTC_RST_CAUSE_LAST_SHIFT, 2)
1845
1846 #define QCA_RTC_RST_CAUSE_LAST_HARD_VAL 0
1847 #define QCA_RTC_RST_CAUSE_LAST_COLD_VAL 1
1848 #define QCA_RTC_RST_CAUSE_LAST_WARM_VAL 2
1849
1850 /* RTC_SYNC_REGISTER register (RTC reset, force sleep and force wakeup) */
1851 #define QCA_RTC_SYNC_RST_RESET_SHIFT    0
1852 #define QCA_RTC_SYNC_RST_RESET_MASK     BIT(QCA_RTC_SYNC_RST_RESET_SHIFT)
1853
1854 /* RTC_SYNC_STATUS register (RTC sync/sleep status) */
1855 #define QCA_RTC_SYNC_STATUS_SHUTDOWN_SHIFT      0
1856 #define QCA_RTC_SYNC_STATUS_SHUTDOWN_MASK       BIT(QCA_RTC_SYNC_STATUS_SHUTDOWN_SHIFT)
1857 #define QCA_RTC_SYNC_STATUS_ON_SHIFT            1
1858 #define QCA_RTC_SYNC_STATUS_ON_MASK             BIT(QCA_RTC_SYNC_STATUS_ON_SHIFT)
1859 #define QCA_RTC_SYNC_STATUS_SLEEP_SHIFT         2
1860 #define QCA_RTC_SYNC_STATUS_SLEEP_MASK          BIT(QCA_RTC_SYNC_STATUS_SLEEP_SHIFT)
1861 #define QCA_RTC_SYNC_STATUS_WAKEUP_SHIFT        3
1862 #define QCA_RTC_SYNC_STATUS_WAKEUP_MASK         BIT(QCA_RTC_SYNC_STATUS_WAKEUP_SHIFT)
1863 #define QCA_RTC_SYNC_STATUS_WRESET_SHIFT        4
1864 #define QCA_RTC_SYNC_STATUS_WRESET_MASK         BIT(QCA_RTC_SYNC_STATUS_WRESET_SHIFT)
1865 #define QCA_RTC_SYNC_STATUS_PLL_CHANGING_SHIFT  5
1866 #define QCA_RTC_SYNC_STATUS_PLL_CHANGING_MASK   BIT(QCA_RTC_SYNC_STATUS_PLL_CHANGING_SHIFT)
1867
1868 /* RTC_SYNC_FORCE_WAKE register (RTC force wake) */
1869 #define QCA_RTC_SYNC_FORCE_WAKE_EN_SHIFT        0
1870 #define QCA_RTC_SYNC_FORCE_WAKE_EN_MASK         BIT(QCA_RTC_SYNC_FORCE_WAKE_EN_SHIFT)
1871 #define QCA_RTC_SYNC_FORCE_WAKE_MACINTR_SHIFT   1
1872 #define QCA_RTC_SYNC_FORCE_WAKE_MACINTR_MASK    BIT(QCA_RTC_SYNC_FORCE_WAKE_MACINTR_SHIFT)
1873
1874 /*
1875  * SPI serial flash registers
1876  */
1877 #define QCA_SPI_FUNC_SEL_REG            QCA_FLASH_BASE_REG + 0x00
1878 #define QCA_SPI_CTRL_REG                QCA_FLASH_BASE_REG + 0x04
1879 #define QCA_SPI_IO_CTRL_REG             QCA_FLASH_BASE_REG + 0x08
1880 #define QCA_SPI_READ_DATA_REG           QCA_FLASH_BASE_REG + 0x0C
1881 #define QCA_SPI_SHIFT_DATAOUT_REG       QCA_FLASH_BASE_REG + 0x10
1882 #define QCA_SPI_SHIFT_CNT_REG           QCA_FLASH_BASE_REG + 0x14
1883 #define QCA_SPI_SHIFT_DATAIN_REG        QCA_FLASH_BASE_REG + 0x18
1884
1885 /*
1886  * SPI serial flash registers BIT fields
1887  */
1888
1889 /* SPI_FUNC_SELECT register (SPI function select) */
1890 #define QCA_SPI_FUNC_SEL_FUNC_SEL_SHIFT 0
1891 #define QCA_SPI_FUNC_SEL_FUNC_SEL_MASK  BIT(QCA_SPI_FUNC_SEL_FUNC_SEL_SHIFT)
1892
1893 /* SPI_CONTROL register (SPI control) */
1894 #define QCA_SPI_CTRL_CLK_DIV_SHIFT      0
1895 #define QCA_SPI_CTRL_CLK_DIV_MASK       BITS(QCA_SPI_CTRL_CLK_DIV_SHIFT, 6)
1896 #define QCA_SPI_CTRL_REMAP_DIS_SHIFT    6
1897 #define QCA_SPI_CTRL_REMAP_DIS_MASK     BIT(QCA_SPI_CTRL_REMAP_DIS_SHIFT)
1898 #define QCA_SPI_CTRL_SPI_RELOCATE_SHIFT 7
1899 #define QCA_SPI_CTRL_SPI_RELOCATE_MASK  BIT(QCA_SPI_CTRL_SPI_RELOCATE_SHIFT)
1900 #define QCA_SPI_CTRL_TSHSL_CNT_SHIFT    8
1901 #define QCA_SPI_CTRL_TSHSL_CNT_MASK     BITS(QCA_SPI_CTRL_TSHSL_CNT_SHIFT, 6)
1902
1903 /* SPI_IO_CONTROL register (SPI I/O control) */
1904 #define QCA_SPI_IO_CTRL_IO_DO_SHIFT     0
1905 #define QCA_SPI_IO_CTRL_IO_DO_MASK      BIT(QCA_SPI_IO_CTRL_IO_DO_SHIFT)
1906 #define QCA_SPI_IO_CTRL_IO_CLK_SHIFT    8
1907 #define QCA_SPI_IO_CTRL_IO_CLK_MASK     BIT(QCA_SPI_IO_CTRL_IO_CLK_SHIFT)
1908 #define QCA_SPI_IO_CTRL_IO_CS0_SHIFT    16
1909 #define QCA_SPI_IO_CTRL_IO_CS0_MASK     BIT(QCA_SPI_IO_CTRL_IO_CS0_SHIFT)
1910 #define QCA_SPI_IO_CTRL_IO_CS1_SHIFT    17
1911 #define QCA_SPI_IO_CTRL_IO_CS1_MASK     BIT(QCA_SPI_IO_CTRL_IO_CS1_SHIFT)
1912 #define QCA_SPI_IO_CTRL_IO_CS2_SHIFT    18
1913 #define QCA_SPI_IO_CTRL_IO_CS2_MASK     BIT(QCA_SPI_IO_CTRL_IO_CS2_SHIFT)
1914
1915 /* SPI_SHIFT_CNT_ADDR register (SPI content to shift out or in) */
1916 #define QCA_SPI_SHIFT_CNT_BITS_CNT_SHIFT        0
1917 #define QCA_SPI_SHIFT_CNT_BITS_CNT_MASK         BITS(QCA_SPI_SHIFT_CNT_BITS_CNT_SHIFT, 7)
1918 #define QCA_SPI_SHIFT_CNT_TERMINATE_SHIFT       26
1919 #define QCA_SPI_SHIFT_CNT_TERMINATE_MASK        BIT(QCA_SPI_SHIFT_CNT_TERMINATE_SHIFT)
1920 #define QCA_SPI_SHIFT_CNT_CLKOUT_INIT_SHIFT     27
1921 #define QCA_SPI_SHIFT_CNT_CLKOUT_INIT_MASK      BIT(QCA_SPI_SHIFT_CNT_CLKOUT_INIT_SHIFT)
1922 #define QCA_SPI_SHIFT_CNT_CHNL_CS0_SHIFT        28
1923 #define QCA_SPI_SHIFT_CNT_CHNL_CS0_MASK         BIT(QCA_SPI_SHIFT_CNT_CHNL_CS0_SHIFT)
1924 #define QCA_SPI_SHIFT_CNT_CHNL_CS1_SHIFT        29
1925 #define QCA_SPI_SHIFT_CNT_CHNL_CS1_MASK         BIT(QCA_SPI_SHIFT_CNT_CHNL_CS1_SHIFT)
1926 #define QCA_SPI_SHIFT_CNT_CHNL_CS2_SHIFT        30
1927 #define QCA_SPI_SHIFT_CNT_CHNL_CS2_MASK         BIT(QCA_SPI_SHIFT_CNT_CHNL_CS2_SHIFT)
1928 #define QCA_SPI_SHIFT_CNT_SHIFT_EN_SHIFT        31
1929 #define QCA_SPI_SHIFT_CNT_SHIFT_EN_MASK         BIT(QCA_SPI_SHIFT_CNT_SHIFT_EN_SHIFT)
1930
1931 /*
1932  * Other useful defines
1933  */
1934
1935 /* Magic flag for indication that PLL/clocks config is stored in FLASH */
1936 #define QCA_PLL_IN_FLASH_MAGIC  0x504C4C73
1937
1938 /* Maximum DRAM size: 256 MB */
1939 #define QCA_DRAM_MAX_SIZE_VAL   (256 * 1024 * 1024)
1940
1941 /*
1942  * PLL/clocks configuration in FLASH offset
1943  */
1944 #if defined(CONFIG_QCA_PLL_IN_FLASH_BLOCK_OFFSET)
1945         #if !defined(CONFIG_QCA_PLL_IN_FLASH_BLOCK_SIZE)
1946                 #define CONFIG_QCA_PLL_IN_FLASH_BLOCK_SIZE      0x10000
1947         #endif
1948
1949         #define CONFIG_QCA_PLL_IN_FLASH_MAGIC_OFFSET    \
1950                                 (CFG_FLASH_BASE + \
1951                                  CONFIG_QCA_PLL_IN_FLASH_BLOCK_OFFSET + \
1952                                  0x0000FFE0)
1953 #endif
1954
1955 /*
1956  * For PLL/clocks recovery use reset button by default
1957  */
1958 #if defined(CONFIG_GPIO_RESET_BTN)
1959         #define CONFIG_QCA_GPIO_OC_RECOVERY_BTN CONFIG_GPIO_RESET_BTN
1960 #endif
1961
1962 #if defined(CONFIG_GPIO_RESET_BTN_ACTIVE_LOW)
1963         #define CONFIG_QCA_GPIO_OC_RECOVERY_BTN_ACTIVE_LOW      1
1964 #endif
1965
1966 /*
1967  * Functions
1968  */
1969 #ifndef __ASSEMBLY__
1970 u32  qca_dram_cas_lat(void);
1971 u32  qca_dram_ddr_width(void);
1972 void qca_dram_init(void);
1973 u32  qca_dram_size(void);
1974 u32  qca_dram_tras_lat(void);
1975 u32  qca_dram_trcd_lat(void);
1976 u32  qca_dram_trp_lat(void);
1977 u32  qca_dram_type(void);
1978 void qca_full_chip_reset(void);
1979 u32  qca_pcie_dev_info(u32 rc_num, u32 *vid, u32 *did);
1980 u32  qca_pcie0_in_ep_mode(void);
1981 void qca_sf_bulk_erase(u32 bank);
1982 u32  qca_sf_jedec_id(u32 bank);
1983 u32  qca_sf_sect_erase(u32 bank, u32 address, u32 sect_size, u8 erase_cmd);
1984 u32  qca_sf_sfdp_info(u32 bank, u32 *flash_size, u32 *sector_size, u8 *erase_cmd);
1985 void qca_sf_write_page(u32 bank, u32 address, u32 length, u8 *data);
1986 void qca_soc_name_rev(char *buf);
1987 void qca_sys_clocks(u32 *cpu_clk, u32 *ddr_clk, u32 *ahb_clk, u32 *spi_clk, u32 *ref_clk);
1988 u32  qca_xtal_is_40mhz(void);
1989 #endif /* !__ASSEMBLY__ */
1990
1991 /*
1992  * Read, write, set and clear macros
1993  */
1994 #define qca_soc_reg_read(_addr)         \
1995                 *(volatile unsigned int *)(KSEG1ADDR(_addr))
1996
1997 #define qca_soc_reg_write(_addr, _val)  \
1998                 ((*(volatile unsigned int *)KSEG1ADDR(_addr)) = (_val))
1999
2000 #define qca_soc_reg_read_set(_addr, _mask)      \
2001                 qca_soc_reg_write((_addr), (qca_soc_reg_read((_addr)) | (_mask)))
2002
2003 #define qca_soc_reg_read_clear(_addr, _mask)    \
2004                 qca_soc_reg_write((_addr), (qca_soc_reg_read((_addr)) & ~(_mask)))
2005
2006 #endif /* _QCA_SOC_COMMON_H_ */