.. | .. |
---|
1 | | -// SPDX-License-Identifier: GPL-2.0 |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 2 | /* |
---|
3 | 3 | * mtu3_hw_regs.h - MediaTek USB3 DRD register and field definitions |
---|
4 | 4 | * |
---|
.. | .. |
---|
49 | 49 | #define U3D_QCR1 (SSUSB_DEV_BASE + 0x0404) |
---|
50 | 50 | #define U3D_QCR2 (SSUSB_DEV_BASE + 0x0408) |
---|
51 | 51 | #define U3D_QCR3 (SSUSB_DEV_BASE + 0x040C) |
---|
| 52 | +#define U3D_QFCR (SSUSB_DEV_BASE + 0x0428) |
---|
52 | 53 | #define U3D_TXQHIAR1 (SSUSB_DEV_BASE + 0x0484) |
---|
53 | 54 | #define U3D_RXQHIAR1 (SSUSB_DEV_BASE + 0x04C4) |
---|
54 | 55 | |
---|
.. | .. |
---|
104 | 105 | |
---|
105 | 106 | /* U3D_EPISR */ |
---|
106 | 107 | #define EPRISR(x) (BIT(16) << (x)) |
---|
| 108 | +#define SETUPENDISR BIT(16) |
---|
107 | 109 | #define EPTISR(x) (BIT(0) << (x)) |
---|
108 | 110 | #define EP0ISR BIT(0) |
---|
109 | 111 | |
---|
.. | .. |
---|
132 | 134 | #define TX_W1C_BITS (~(TX_SENTSTALL)) |
---|
133 | 135 | |
---|
134 | 136 | /* 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) |
---|
137 | 141 | #define TX_SLOT(x) (((x) & 0x3f) << 8) |
---|
138 | 142 | #define TX_TYPE(x) (((x) & 0x3) << 4) |
---|
139 | 143 | #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 | +}) |
---|
140 | 154 | |
---|
141 | 155 | /* for TX_TYPE & RX_TYPE */ |
---|
142 | 156 | #define TYPE_BULK (0x0) |
---|
.. | .. |
---|
159 | 173 | #define RX_W1C_BITS (~(RX_SENTSTALL | RX_RXPKTRDY)) |
---|
160 | 174 | |
---|
161 | 175 | /* 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) |
---|
164 | 180 | #define RX_SLOT(x) (((x) & 0x3f) << 8) |
---|
165 | 181 | #define RX_TYPE(x) (((x) & 0x3) << 4) |
---|
166 | 182 | #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 | +}) |
---|
167 | 193 | |
---|
168 | 194 | /* U3D_RX1CSR2 */ |
---|
169 | 195 | #define RX_BINTERVAL(x) (((x) & 0xff) << 24) |
---|
.. | .. |
---|
264 | 290 | #define U3D_LTSSM_CTRL (SSUSB_USB3_MAC_CSR_BASE + 0x0010) |
---|
265 | 291 | #define U3D_USB3_CONFIG (SSUSB_USB3_MAC_CSR_BASE + 0x001C) |
---|
266 | 292 | |
---|
| 293 | +#define U3D_LINK_STATE_MACHINE (SSUSB_USB3_MAC_CSR_BASE + 0x0134) |
---|
267 | 294 | #define U3D_LTSSM_INTR_ENABLE (SSUSB_USB3_MAC_CSR_BASE + 0x013C) |
---|
268 | 295 | #define U3D_LTSSM_INTR (SSUSB_USB3_MAC_CSR_BASE + 0x0140) |
---|
| 296 | + |
---|
| 297 | +#define U3D_U3U2_SWITCH_CTRL (SSUSB_USB3_MAC_CSR_BASE + 0x0170) |
---|
269 | 298 | |
---|
270 | 299 | /*---------------- SSUSB_USB3_MAC_CSR FIELD DEFINITION ----------------*/ |
---|
271 | 300 | |
---|
.. | .. |
---|
278 | 307 | |
---|
279 | 308 | /* U3D_USB3_CONFIG */ |
---|
280 | 309 | #define USB3_EN BIT(0) |
---|
| 310 | + |
---|
| 311 | +/* U3D_LINK_STATE_MACHINE */ |
---|
| 312 | +#define LTSSM_STATE(x) ((x) & 0x1f) |
---|
281 | 313 | |
---|
282 | 314 | /* U3D_LTSSM_INTR_ENABLE */ |
---|
283 | 315 | /* U3D_LTSSM_INTR */ |
---|
.. | .. |
---|
300 | 332 | #define COMPLIANCE_INTR BIT(2) |
---|
301 | 333 | #define SS_DISABLE_INTR BIT(1) |
---|
302 | 334 | #define SS_INACTIVE_INTR BIT(0) |
---|
| 335 | + |
---|
| 336 | +/* U3D_U3U2_SWITCH_CTRL */ |
---|
| 337 | +#define SOFTCON_CLR_AUTO_EN BIT(0) |
---|
303 | 338 | |
---|
304 | 339 | /*---------------- SSUSB_USB3_SYS_CSR REGISTER DEFINITION ----------------*/ |
---|
305 | 340 | |
---|
.. | .. |
---|
341 | 376 | #define U3D_USB20_FRAME_NUM (SSUSB_USB2_CSR_BASE + 0x003C) |
---|
342 | 377 | #define U3D_USB20_LPM_PARAMETER (SSUSB_USB2_CSR_BASE + 0x0044) |
---|
343 | 378 | #define U3D_USB20_MISC_CONTROL (SSUSB_USB2_CSR_BASE + 0x004C) |
---|
| 379 | +#define U3D_USB20_OPSTATE (SSUSB_USB2_CSR_BASE + 0x0060) |
---|
344 | 380 | |
---|
345 | 381 | /*---------------- SSUSB_USB2_CSR FIELD DEFINITION ----------------*/ |
---|
346 | 382 | |
---|
.. | .. |
---|
413 | 449 | #define U3D_SSUSB_DEV_RST_CTRL (SSUSB_SIFSLV_IPPC_BASE + 0x0098) |
---|
414 | 450 | #define U3D_SSUSB_HW_ID (SSUSB_SIFSLV_IPPC_BASE + 0x00A0) |
---|
415 | 451 | #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) |
---|
416 | 459 | #define U3D_SSUSB_IP_SPARE0 (SSUSB_SIFSLV_IPPC_BASE + 0x00C8) |
---|
417 | 460 | |
---|
418 | 461 | /*---------------- SSUSB_SIFSLV_IPPC FIELD DEFINITION ----------------*/ |
---|
.. | .. |
---|
477 | 520 | /* U3D_SSUSB_DEV_RST_CTRL */ |
---|
478 | 521 | #define SSUSB_DEV_SW_RST BIT(0) |
---|
479 | 522 | |
---|
| 523 | +/* U3D_SSUSB_IP_TRUNK_VERS */ |
---|
| 524 | +#define IP_TRUNK_VERS(x) (((x) >> 16) & 0xffff) |
---|
| 525 | + |
---|
480 | 526 | #endif /* _SSUSB_HW_REGS_H_ */ |
---|