net: dsa: sja1105: migrate to xpcs for SGMII
[linux-2.6-microblaze.git] / drivers / net / dsa / sja1105 / sja1105.h
index 5f34493..8245092 100644 (file)
@@ -133,6 +133,8 @@ struct sja1105_info {
        bool (*rxtstamp)(struct dsa_switch *ds, int port, struct sk_buff *skb);
        void (*txtstamp)(struct dsa_switch *ds, int port, struct sk_buff *skb);
        int (*clocking_setup)(struct sja1105_private *priv);
+       int (*pcs_mdio_read)(struct mii_bus *bus, int phy, int reg);
+       int (*pcs_mdio_write)(struct mii_bus *bus, int phy, int reg, u16 val);
        const char *name;
        bool supports_mii[SJA1105_MAX_NUM_PORTS];
        bool supports_rmii[SJA1105_MAX_NUM_PORTS];
@@ -265,6 +267,8 @@ struct sja1105_private {
        struct sja1105_cbs_entry *cbs;
        struct mii_bus *mdio_base_t1;
        struct mii_bus *mdio_base_tx;
+       struct mii_bus *mdio_pcs;
+       struct dw_xpcs *xpcs[SJA1105_MAX_NUM_PORTS];
        struct sja1105_tagger_data tagger_data;
        struct sja1105_ptp_data ptp_data;
        struct sja1105_tas_data tas_data;
@@ -297,6 +301,8 @@ void sja1105_frame_memory_partitioning(struct sja1105_private *priv);
 /* From sja1105_mdio.c */
 int sja1105_mdiobus_register(struct dsa_switch *ds);
 void sja1105_mdiobus_unregister(struct dsa_switch *ds);
+int sja1105_pcs_mdio_read(struct mii_bus *bus, int phy, int reg);
+int sja1105_pcs_mdio_write(struct mii_bus *bus, int phy, int reg, u16 val);
 
 /* From sja1105_devlink.c */
 int sja1105_devlink_setup(struct dsa_switch *ds);