File Index
Files and directories
Sign in
FILE

stmmac_vlan.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Copyright (C) 2025, Altera Corporation
 4 * stmmac VLAN(802.1Q) handling
 5 */
 6
 7#ifndef __STMMAC_VLAN_H__
 8#define __STMMAC_VLAN_H__
 9
10#include <linux/bitfield.h>
11#include "dwxgmac2.h"
12
13#define VLAN_TAG			0x00000050
14#define VLAN_TAG_DATA			0x00000054
15#define VLAN_HASH_TABLE			0x00000058
16#define VLAN_INCL			0x00000060
17
18/* MAC VLAN */
19#define VLAN_EDVLP			BIT(26)
20#define VLAN_VTHM			BIT(25)
21#define VLAN_DOVLTC			BIT(20)
22#define VLAN_ESVL			BIT(18)
23#define VLAN_ETV			BIT(16)
24#define VLAN_VID			GENMASK(15, 0)
25#define VLAN_VLTI			BIT(20)
26#define VLAN_CSVL			BIT(19)
27#define VLAN_VLC			GENMASK(17, 16)
28#define VLAN_VLC_SHIFT			16
29#define VLAN_VLHT			GENMASK(15, 0)
30
31/* MAC VLAN Tag */
32#define VLAN_TAG_VID			GENMASK(15, 0)
33#define VLAN_TAG_ETV			BIT(16)
34
35/* MAC VLAN Tag Control */
36#define VLAN_TAG_CTRL_OB		BIT(0)
37#define VLAN_TAG_CTRL_CT		BIT(1)
38#define VLAN_TAG_CTRL_OFS_MASK		GENMASK(6, 2)
39#define VLAN_TAG_CTRL_OFS_SHIFT		2
40#define VLAN_TAG_CTRL_EVLS_MASK		GENMASK(22, 21)
41#define VLAN_TAG_CTRL_EVLS_SHIFT	21
42#define VLAN_TAG_CTRL_EVLRXS		BIT(24)
43
44#define VLAN_TAG_STRIP_NONE		FIELD_PREP(VLAN_TAG_CTRL_EVLS_MASK, 0x0)
45#define VLAN_TAG_STRIP_PASS		FIELD_PREP(VLAN_TAG_CTRL_EVLS_MASK, 0x1)
46#define VLAN_TAG_STRIP_FAIL		FIELD_PREP(VLAN_TAG_CTRL_EVLS_MASK, 0x2)
47#define VLAN_TAG_STRIP_ALL		FIELD_PREP(VLAN_TAG_CTRL_EVLS_MASK, 0x3)
48
49/* MAC VLAN Tag Data/Filter */
50#define VLAN_TAG_DATA_VID		GENMASK(15, 0)
51#define VLAN_TAG_DATA_VEN		BIT(16)
52#define VLAN_TAG_DATA_ETV		BIT(17)
53
54/* MAC VLAN HW FEAT */
55#define HW_FEATURE3			0x00000128
56#define VLAN_HW_FEAT_NRVF		GENMASK(2, 0)
57
58extern const struct stmmac_vlan_ops dwmac_vlan_ops;
59extern const struct stmmac_vlan_ops dwxgmac210_vlan_ops;
60extern const struct stmmac_vlan_ops dwxlgmac2_vlan_ops;
61
62u32 stmmac_get_num_vlan(void __iomem *ioaddr);
63
64#endif /* __STMMAC_VLAN_H__ */
~/ Read-only file preview.