hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/usb/mtu3/mtu3_hw_regs.h
....@@ -1,4 +1,4 @@
1
-// SPDX-License-Identifier: GPL-2.0
1
+/* SPDX-License-Identifier: GPL-2.0 */
22 /*
33 * mtu3_hw_regs.h - MediaTek USB3 DRD register and field definitions
44 *
....@@ -49,6 +49,7 @@
4949 #define U3D_QCR1 (SSUSB_DEV_BASE + 0x0404)
5050 #define U3D_QCR2 (SSUSB_DEV_BASE + 0x0408)
5151 #define U3D_QCR3 (SSUSB_DEV_BASE + 0x040C)
52
+#define U3D_QFCR (SSUSB_DEV_BASE + 0x0428)
5253 #define U3D_TXQHIAR1 (SSUSB_DEV_BASE + 0x0484)
5354 #define U3D_RXQHIAR1 (SSUSB_DEV_BASE + 0x04C4)
5455
....@@ -104,6 +105,7 @@
104105
105106 /* U3D_EPISR */
106107 #define EPRISR(x) (BIT(16) << (x))
108
+#define SETUPENDISR BIT(16)
107109 #define EPTISR(x) (BIT(0) << (x))
108110 #define EP0ISR BIT(0)
109111
....@@ -132,11 +134,23 @@
132134 #define TX_W1C_BITS (~(TX_SENTSTALL))
133135
134136 /* U3D_TX1CSR1 */
135
-#define TX_MULT(x) (((x) & 0x3) << 22)
136
-#define TX_MAX_PKT(x) (((x) & 0x3f) << 16)
137
+#define TX_MAX_PKT_G2(x) (((x) & 0xff) << 24)
138
+#define TX_MULT_G2(x) (((x) & 0x7) << 21)
139
+#define TX_MULT_OG(x) (((x) & 0x3) << 22)
140
+#define TX_MAX_PKT_OG(x) (((x) & 0x3f) << 16)
137141 #define TX_SLOT(x) (((x) & 0x3f) << 8)
138142 #define TX_TYPE(x) (((x) & 0x3) << 4)
139143 #define TX_SS_BURST(x) (((x) & 0xf) << 0)
144
+#define TX_MULT(g2c, x) \
145
+({ \
146
+ typeof(x) x_ = (x); \
147
+ (g2c) ? TX_MULT_G2(x_) : TX_MULT_OG(x_); \
148
+})
149
+#define TX_MAX_PKT(g2c, x) \
150
+({ \
151
+ typeof(x) x_ = (x); \
152
+ (g2c) ? TX_MAX_PKT_G2(x_) : TX_MAX_PKT_OG(x_); \
153
+})
140154
141155 /* for TX_TYPE & RX_TYPE */
142156 #define TYPE_BULK (0x0)
....@@ -159,11 +173,23 @@
159173 #define RX_W1C_BITS (~(RX_SENTSTALL | RX_RXPKTRDY))
160174
161175 /* U3D_RX1CSR1 */
162
-#define RX_MULT(x) (((x) & 0x3) << 22)
163
-#define RX_MAX_PKT(x) (((x) & 0x3f) << 16)
176
+#define RX_MAX_PKT_G2(x) (((x) & 0xff) << 24)
177
+#define RX_MULT_G2(x) (((x) & 0x7) << 21)
178
+#define RX_MULT_OG(x) (((x) & 0x3) << 22)
179
+#define RX_MAX_PKT_OG(x) (((x) & 0x3f) << 16)
164180 #define RX_SLOT(x) (((x) & 0x3f) << 8)
165181 #define RX_TYPE(x) (((x) & 0x3) << 4)
166182 #define RX_SS_BURST(x) (((x) & 0xf) << 0)
183
+#define RX_MULT(g2c, x) \
184
+({ \
185
+ typeof(x) x_ = (x); \
186
+ (g2c) ? RX_MULT_G2(x_) : RX_MULT_OG(x_); \
187
+})
188
+#define RX_MAX_PKT(g2c, x) \
189
+({ \
190
+ typeof(x) x_ = (x); \
191
+ (g2c) ? RX_MAX_PKT_G2(x_) : RX_MAX_PKT_OG(x_); \
192
+})
167193
168194 /* U3D_RX1CSR2 */
169195 #define RX_BINTERVAL(x) (((x) & 0xff) << 24)
....@@ -264,8 +290,11 @@
264290 #define U3D_LTSSM_CTRL (SSUSB_USB3_MAC_CSR_BASE + 0x0010)
265291 #define U3D_USB3_CONFIG (SSUSB_USB3_MAC_CSR_BASE + 0x001C)
266292
293
+#define U3D_LINK_STATE_MACHINE (SSUSB_USB3_MAC_CSR_BASE + 0x0134)
267294 #define U3D_LTSSM_INTR_ENABLE (SSUSB_USB3_MAC_CSR_BASE + 0x013C)
268295 #define U3D_LTSSM_INTR (SSUSB_USB3_MAC_CSR_BASE + 0x0140)
296
+
297
+#define U3D_U3U2_SWITCH_CTRL (SSUSB_USB3_MAC_CSR_BASE + 0x0170)
269298
270299 /*---------------- SSUSB_USB3_MAC_CSR FIELD DEFINITION ----------------*/
271300
....@@ -278,6 +307,9 @@
278307
279308 /* U3D_USB3_CONFIG */
280309 #define USB3_EN BIT(0)
310
+
311
+/* U3D_LINK_STATE_MACHINE */
312
+#define LTSSM_STATE(x) ((x) & 0x1f)
281313
282314 /* U3D_LTSSM_INTR_ENABLE */
283315 /* U3D_LTSSM_INTR */
....@@ -300,6 +332,9 @@
300332 #define COMPLIANCE_INTR BIT(2)
301333 #define SS_DISABLE_INTR BIT(1)
302334 #define SS_INACTIVE_INTR BIT(0)
335
+
336
+/* U3D_U3U2_SWITCH_CTRL */
337
+#define SOFTCON_CLR_AUTO_EN BIT(0)
303338
304339 /*---------------- SSUSB_USB3_SYS_CSR REGISTER DEFINITION ----------------*/
305340
....@@ -341,6 +376,7 @@
341376 #define U3D_USB20_FRAME_NUM (SSUSB_USB2_CSR_BASE + 0x003C)
342377 #define U3D_USB20_LPM_PARAMETER (SSUSB_USB2_CSR_BASE + 0x0044)
343378 #define U3D_USB20_MISC_CONTROL (SSUSB_USB2_CSR_BASE + 0x004C)
379
+#define U3D_USB20_OPSTATE (SSUSB_USB2_CSR_BASE + 0x0060)
344380
345381 /*---------------- SSUSB_USB2_CSR FIELD DEFINITION ----------------*/
346382
....@@ -413,6 +449,13 @@
413449 #define U3D_SSUSB_DEV_RST_CTRL (SSUSB_SIFSLV_IPPC_BASE + 0x0098)
414450 #define U3D_SSUSB_HW_ID (SSUSB_SIFSLV_IPPC_BASE + 0x00A0)
415451 #define U3D_SSUSB_HW_SUB_ID (SSUSB_SIFSLV_IPPC_BASE + 0x00A4)
452
+#define U3D_SSUSB_IP_TRUNK_VERS (U3D_SSUSB_HW_SUB_ID)
453
+#define U3D_SSUSB_PRB_CTRL0 (SSUSB_SIFSLV_IPPC_BASE + 0x00B0)
454
+#define U3D_SSUSB_PRB_CTRL1 (SSUSB_SIFSLV_IPPC_BASE + 0x00B4)
455
+#define U3D_SSUSB_PRB_CTRL2 (SSUSB_SIFSLV_IPPC_BASE + 0x00B8)
456
+#define U3D_SSUSB_PRB_CTRL3 (SSUSB_SIFSLV_IPPC_BASE + 0x00BC)
457
+#define U3D_SSUSB_PRB_CTRL4 (SSUSB_SIFSLV_IPPC_BASE + 0x00C0)
458
+#define U3D_SSUSB_PRB_CTRL5 (SSUSB_SIFSLV_IPPC_BASE + 0x00C4)
416459 #define U3D_SSUSB_IP_SPARE0 (SSUSB_SIFSLV_IPPC_BASE + 0x00C8)
417460
418461 /*---------------- SSUSB_SIFSLV_IPPC FIELD DEFINITION ----------------*/
....@@ -477,4 +520,7 @@
477520 /* U3D_SSUSB_DEV_RST_CTRL */
478521 #define SSUSB_DEV_SW_RST BIT(0)
479522
523
+/* U3D_SSUSB_IP_TRUNK_VERS */
524
+#define IP_TRUNK_VERS(x) (((x) >> 16) & 0xffff)
525
+
480526 #endif /* _SSUSB_HW_REGS_H_ */