GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / staging / rtlwifi / halmac / halmac_sdio_reg.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2016  Realtek Corporation.
5  *
6  * Contact Information:
7  * wlanfae <wlanfae@realtek.com>
8  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
9  * Hsinchu 300, Taiwan.
10  *
11  * Larry Finger <Larry.Finger@lwfinger.net>
12  *
13  *****************************************************************************/
14 #ifndef __HALMAC_SDIO_REG_H__
15 #define __HALMAC_SDIO_REG_H__
16
17 /* SDIO CMD address mapping */
18
19 #define HALMAC_SDIO_4BYTE_LEN_MASK 0x1FFF
20 #define HALMAC_SDIO_LOCAL_MSK 0x0FFF
21 #define HALMAC_WLAN_MAC_REG_MSK 0xFFFF
22 #define HALMAC_WLAN_IOREG_MSK 0xFFFF
23
24 /* Sdio address for SDIO Local Reg, TRX FIFO, MAC Reg */
25 enum halmac_sdio_cmd_addr {
26         HALMAC_SDIO_CMD_ADDR_SDIO_REG = 0,
27         HALMAC_SDIO_CMD_ADDR_MAC_REG = 8,
28         HALMAC_SDIO_CMD_ADDR_TXFF_HIGH = 4,
29         HALMAC_SDIO_CMD_ADDR_TXFF_LOW = 6,
30         HALMAC_SDIO_CMD_ADDR_TXFF_NORMAL = 5,
31         HALMAC_SDIO_CMD_ADDR_TXFF_EXTRA = 7,
32         HALMAC_SDIO_CMD_ADDR_RXFF = 7,
33 };
34
35 /* IO Bus domain address mapping */
36 #define SDIO_LOCAL_OFFSET 0x10250000
37 #define WLAN_IOREG_OFFSET 0x10260000
38 #define FW_FIFO_OFFSET 0x10270000
39 #define TX_HIQ_OFFSET 0x10310000
40 #define TX_MIQ_OFFSET 0x10320000
41 #define TX_LOQ_OFFSET 0x10330000
42 #define TX_EXQ_OFFSET 0x10350000
43 #define RX_RXOFF_OFFSET 0x10340000
44
45 /* Get TX WLAN FIFO information in CMD53 addr  */
46 #define GET_WLAN_TXFF_DEVICE_ID(__cmd53_addr)                                  \
47         LE_BITS_TO_4BYTE((u32 *)__cmd53_addr, 13, 4)
48 #define GET_WLAN_TXFF_PKT_SIZE(__cmd53_addr)                                   \
49         (LE_BITS_TO_4BYTE((u32 *)__cmd53_addr, 0, 13) << 2)
50
51 #endif /* __HALMAC_SDIO_REG_H__ */