diff options
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/rtl8366_smi.h')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366_smi.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h index 1afee9b..c0374bf 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h @@ -14,6 +14,7 @@ #include <linux/phy.h> struct rtl8366_smi_ops; +struct rtl8366_vlan_ops; struct mii_bus; struct rtl8366_smi { @@ -27,13 +28,6 @@ struct rtl8366_smi { struct rtl8366_smi_ops *ops; }; -struct rtl8366_smi_ops { - int (*detect)(struct rtl8366_smi *smi); - - int (*mii_read)(struct mii_bus *bus, int addr, int reg); - int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val); -}; - struct rtl8366_vlan_mc { u16 vid; u8 priority; @@ -49,6 +43,24 @@ struct rtl8366_vlan_4k { u8 fid; }; +struct rtl8366_smi_ops { + int (*detect)(struct rtl8366_smi *smi); + + int (*mii_read)(struct mii_bus *bus, int addr, int reg); + int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val); + + int (*get_vlan_mc)(struct rtl8366_smi *smi, u32 index, + struct rtl8366_vlan_mc *vlanmc); + int (*set_vlan_mc)(struct rtl8366_smi *smi, u32 index, + const struct rtl8366_vlan_mc *vlanmc); + int (*get_vlan_4k)(struct rtl8366_smi *smi, u32 vid, + struct rtl8366_vlan_4k *vlan4k); + int (*set_vlan_4k)(struct rtl8366_smi *smi, + const struct rtl8366_vlan_4k *vlan4k); + int (*get_mc_index)(struct rtl8366_smi *smi, int port, int *val); + int (*set_mc_index)(struct rtl8366_smi *smi, int port, int index); +}; + int rtl8366_smi_init(struct rtl8366_smi *smi); void rtl8366_smi_cleanup(struct rtl8366_smi *smi); int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data); |