1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2018 MediaTek Inc.
6 #ifndef _MT753X_VLAN_H_
7 #define _MT753X_VLAN_H_
9 #define MT753X_NUM_PORTS 7
10 #define MT753X_NUM_VLANS 4095
11 #define MT753X_MAX_VID 4095
12 #define MT753X_MIN_VID 0
16 struct mt753x_port_entry
{
20 struct mt753x_vlan_entry
{
26 struct mt753x_mapping
{
28 u16 pvids
[MT753X_NUM_PORTS
];
29 u8 members
[MT753X_NUM_VLANS
];
30 u8 etags
[MT753X_NUM_VLANS
];
31 u16 vids
[MT753X_NUM_VLANS
];
34 extern struct mt753x_mapping mt753x_defaults
[];
36 void mt753x_vlan_ctrl(struct gsw_mt753x
*gsw
, u32 cmd
, u32 val
);
37 void mt753x_apply_vlan_config(struct gsw_mt753x
*gsw
);
38 struct mt753x_mapping
*mt753x_find_mapping(struct device_node
*np
);
39 void mt753x_apply_mapping(struct gsw_mt753x
*gsw
, struct mt753x_mapping
*map
);
40 #endif /* _MT753X_VLAN_H_ */