42 lines
750 B
C
42 lines
750 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef DSA_LOOP_H
|
|
#define DSA_LOOP_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/ethtool.h>
|
|
#include <net/dsa.h>
|
|
|
|
struct dsa_loop_vlan {
|
|
u16 members;
|
|
u16 untagged;
|
|
};
|
|
|
|
struct dsa_loop_mib_entry {
|
|
char name[ETH_GSTRING_LEN];
|
|
unsigned long val;
|
|
};
|
|
|
|
enum dsa_loop_mib_counters {
|
|
DSA_LOOP_PHY_READ_OK,
|
|
DSA_LOOP_PHY_READ_ERR,
|
|
DSA_LOOP_PHY_WRITE_OK,
|
|
DSA_LOOP_PHY_WRITE_ERR,
|
|
__DSA_LOOP_CNT_MAX,
|
|
};
|
|
|
|
struct dsa_loop_port {
|
|
struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX];
|
|
u16 pvid;
|
|
int mtu;
|
|
};
|
|
|
|
struct dsa_loop_priv {
|
|
struct mii_bus *bus;
|
|
unsigned int port_base;
|
|
struct dsa_loop_vlan vlans[VLAN_N_VID];
|
|
struct net_device *netdev;
|
|
struct dsa_loop_port ports[DSA_MAX_PORTS];
|
|
};
|
|
|
|
#endif /* DSA_LOOP_H */
|