1*9da2c867SAlvin Šipraga /* SPDX-License-Identifier: GPL-2.0 */ 2*9da2c867SAlvin Šipraga /* VLAN configuration interface for the rtl8365mb switch family 3*9da2c867SAlvin Šipraga * 4*9da2c867SAlvin Šipraga * Copyright (C) 2022 Alvin Šipraga <alsi@bang-olufsen.dk> 5*9da2c867SAlvin Šipraga * 6*9da2c867SAlvin Šipraga */ 7*9da2c867SAlvin Šipraga 8*9da2c867SAlvin Šipraga #ifndef _REALTEK_RTL8365MB_VLAN_H 9*9da2c867SAlvin Šipraga #define _REALTEK_RTL8365MB_VLAN_H 10*9da2c867SAlvin Šipraga 11*9da2c867SAlvin Šipraga #include <linux/types.h> 12*9da2c867SAlvin Šipraga 13*9da2c867SAlvin Šipraga #include "realtek.h" 14*9da2c867SAlvin Šipraga 15*9da2c867SAlvin Šipraga enum rtl8365mb_frame_ingress { 16*9da2c867SAlvin Šipraga RTL8365MB_FRAME_TYPE_ANY_FRAME = 0, 17*9da2c867SAlvin Šipraga RTL8365MB_FRAME_TYPE_TAGGED_ONLY, 18*9da2c867SAlvin Šipraga RTL8365MB_FRAME_TYPE_UNTAGGED_ONLY, 19*9da2c867SAlvin Šipraga }; 20*9da2c867SAlvin Šipraga 21*9da2c867SAlvin Šipraga int rtl8365mb_vlan_port_get_pvid(struct realtek_priv *priv, int port, 22*9da2c867SAlvin Šipraga u16 *pvid); 23*9da2c867SAlvin Šipraga int 24*9da2c867SAlvin Šipraga rtl8365mb_vlan_port_get_framefilter(struct realtek_priv *priv, 25*9da2c867SAlvin Šipraga int port, 26*9da2c867SAlvin Šipraga enum rtl8365mb_frame_ingress *frame_type); 27*9da2c867SAlvin Šipraga int 28*9da2c867SAlvin Šipraga rtl8365mb_vlan_port_set_framefilter(struct realtek_priv *priv, 29*9da2c867SAlvin Šipraga int port, 30*9da2c867SAlvin Šipraga enum rtl8365mb_frame_ingress frame_type); 31*9da2c867SAlvin Šipraga int rtl8365mb_vlan_4k_port_add(struct dsa_switch *ds, int port, 32*9da2c867SAlvin Šipraga const struct switchdev_obj_port_vlan *vlan, 33*9da2c867SAlvin Šipraga struct netlink_ext_ack *extack); 34*9da2c867SAlvin Šipraga int rtl8365mb_vlan_4k_port_del(struct dsa_switch *ds, int port, 35*9da2c867SAlvin Šipraga const struct switchdev_obj_port_vlan *vlan); 36*9da2c867SAlvin Šipraga int rtl8365mb_vlan_pvid_port_set(struct dsa_switch *ds, int port, u16 vid, 37*9da2c867SAlvin Šipraga struct netlink_ext_ack *extack); 38*9da2c867SAlvin Šipraga int rtl8365mb_vlan_pvid_port_clear(struct dsa_switch *ds, int port, u16 vid); 39*9da2c867SAlvin Šipraga #endif /* _REALTEK_RTL8365MB_VLAN_H */ 40