blob: aa4951ec0e0de4a1901cc04b0aca63edf694a4eb [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Calvin Johnson2deb8c92018-03-08 15:30:27 +05302/*
3 * Copyright 2015-2016 Freescale Semiconductor, Inc.
4 * Copyright 2017 NXP
Calvin Johnson2deb8c92018-03-08 15:30:27 +05305 */
6
7#ifndef _HIF_H_
8#define _HIF_H_
9
10/*
11 * @file hif.h.
12 * hif - PFE hif block control and status register.
13 * Mapped on CBUS and accessible from all PE's and ARM.
14 */
Simon Glass4dcacfc2020-05-10 11:40:13 -060015#include <linux/bitops.h>
Calvin Johnson2deb8c92018-03-08 15:30:27 +053016#define HIF_VERSION (HIF_BASE_ADDR + 0x00)
17#define HIF_TX_CTRL (HIF_BASE_ADDR + 0x04)
18#define HIF_TX_CURR_BD_ADDR (HIF_BASE_ADDR + 0x08)
19#define HIF_TX_ALLOC (HIF_BASE_ADDR + 0x0c)
20#define HIF_TX_BDP_ADDR (HIF_BASE_ADDR + 0x10)
21#define HIF_TX_STATUS (HIF_BASE_ADDR + 0x14)
22#define HIF_RX_CTRL (HIF_BASE_ADDR + 0x20)
23#define HIF_RX_BDP_ADDR (HIF_BASE_ADDR + 0x24)
24#define HIF_RX_STATUS (HIF_BASE_ADDR + 0x30)
25#define HIF_INT_SRC (HIF_BASE_ADDR + 0x34)
26#define HIF_INT_ENABLE (HIF_BASE_ADDR + 0x38)
27#define HIF_POLL_CTRL (HIF_BASE_ADDR + 0x3c)
28#define HIF_RX_CURR_BD_ADDR (HIF_BASE_ADDR + 0x40)
29#define HIF_RX_ALLOC (HIF_BASE_ADDR + 0x44)
30#define HIF_TX_DMA_STATUS (HIF_BASE_ADDR + 0x48)
31#define HIF_RX_DMA_STATUS (HIF_BASE_ADDR + 0x4c)
32#define HIF_INT_COAL (HIF_BASE_ADDR + 0x50)
33#define HIF_AXI_CTRL (HIF_BASE_ADDR + 0x54)
34
35/* HIF_TX_CTRL bits */
36#define HIF_CTRL_DMA_EN BIT(0)
37#define HIF_CTRL_BDP_POLL_CTRL_EN BIT(1)
38#define HIF_CTRL_BDP_CH_START_WSTB BIT(2)
39
40/* HIF_RX_STATUS bits */
41#define BDP_CSR_RX_DMA_ACTV BIT(16)
42
43/* HIF_INT_ENABLE bits */
44#define HIF_INT_EN BIT(0)
45#define HIF_RXBD_INT_EN BIT(1)
46#define HIF_RXPKT_INT_EN BIT(2)
47#define HIF_TXBD_INT_EN BIT(3)
48#define HIF_TXPKT_INT_EN BIT(4)
49
50/* HIF_POLL_CTRL bits*/
51#define HIF_RX_POLL_CTRL_CYCLE 0x0400
52#define HIF_TX_POLL_CTRL_CYCLE 0x0400
53
54/* Buffer descriptor control bits */
55#define BD_CTRL_BUFLEN_MASK (0xffff)
56#define BD_BUF_LEN(x) (x & BD_CTRL_BUFLEN_MASK)
57#define BD_CTRL_CBD_INT_EN BIT(16)
58#define BD_CTRL_PKT_INT_EN BIT(17)
59#define BD_CTRL_LIFM BIT(18)
60#define BD_CTRL_LAST_BD BIT(19)
61#define BD_CTRL_DIR BIT(20)
62#define BD_CTRL_PKT_XFER BIT(24)
63#define BD_CTRL_DESC_EN BIT(31)
64#define BD_CTRL_PARSE_DISABLE BIT(25)
65#define BD_CTRL_BRFETCH_DISABLE BIT(26)
66#define BD_CTRL_RTFETCH_DISABLE BIT(27)
67
68#endif /* _HIF_H_ */