blob: 1e89df7244bdfc006bbc688db6fbf17d1a3d6188 [file] [log] [blame]
Kevin Cernekee932e30b2012-07-09 01:41:18 +00001#ifndef BCM63XX_IUDMA_H_
2#define BCM63XX_IUDMA_H_
3
4#include <linux/types.h>
5
6/*
7 * rx/tx dma descriptor
8 */
9struct bcm_enet_desc {
10 u32 len_stat;
11 u32 address;
12};
13
Kevin Cernekee6f942342012-07-09 01:41:19 +000014/* control */
Kevin Cernekee932e30b2012-07-09 01:41:18 +000015#define DMADESC_LENGTH_SHIFT 16
16#define DMADESC_LENGTH_MASK (0xfff << DMADESC_LENGTH_SHIFT)
17#define DMADESC_OWNER_MASK (1 << 15)
18#define DMADESC_EOP_MASK (1 << 14)
19#define DMADESC_SOP_MASK (1 << 13)
20#define DMADESC_ESOP_MASK (DMADESC_EOP_MASK | DMADESC_SOP_MASK)
21#define DMADESC_WRAP_MASK (1 << 12)
Ralf Baechle70342282013-01-22 12:59:30 +010022#define DMADESC_USB_NOZERO_MASK (1 << 1)
Kevin Cernekee6f942342012-07-09 01:41:19 +000023#define DMADESC_USB_ZERO_MASK (1 << 0)
Kevin Cernekee932e30b2012-07-09 01:41:18 +000024
Kevin Cernekee6f942342012-07-09 01:41:19 +000025/* status */
Kevin Cernekee932e30b2012-07-09 01:41:18 +000026#define DMADESC_UNDER_MASK (1 << 9)
27#define DMADESC_APPEND_CRC (1 << 8)
28#define DMADESC_OVSIZE_MASK (1 << 4)
29#define DMADESC_RXER_MASK (1 << 2)
30#define DMADESC_CRC_MASK (1 << 1)
31#define DMADESC_OV_MASK (1 << 0)
32#define DMADESC_ERR_MASK (DMADESC_UNDER_MASK | \
33 DMADESC_OVSIZE_MASK | \
34 DMADESC_RXER_MASK | \
35 DMADESC_CRC_MASK | \
36 DMADESC_OV_MASK)
37
38#endif /* ! BCM63XX_IUDMA_H_ */