Lines Matching +full:sparx5 +full:- +full:serdes

1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /* Microchip Sparx5 Switch driver
21 SPX5_TARGET_CT_7546 = 0x7546, /* SparX-5-64 Enterprise */
22 SPX5_TARGET_CT_7549 = 0x7549, /* SparX-5-90 Enterprise */
23 SPX5_TARGET_CT_7552 = 0x7552, /* SparX-5-128 Enterprise */
24 SPX5_TARGET_CT_7556 = 0x7556, /* SparX-5-160 Enterprise */
25 SPX5_TARGET_CT_7558 = 0x7558, /* SparX-5-200 Enterprise */
26 SPX5_TARGET_CT_7546TSN = 0x47546, /* SparX-5-64i Industrial */
27 SPX5_TARGET_CT_7549TSN = 0x47549, /* SparX-5-90i Industrial */
28 SPX5_TARGET_CT_7552TSN = 0x47552, /* SparX-5-128i Industrial */
29 SPX5_TARGET_CT_7556TSN = 0x47556, /* SparX-5-160i Industrial */
30 SPX5_TARGET_CT_7558TSN = 0x47558, /* SparX-5-200i Industrial */
41 SPX5_VLAN_PORT_TYPE_C, /* C-port */
42 SPX5_VLAN_PORT_TYPE_S, /* S-port */
43 SPX5_VLAN_PORT_TYPE_S_CUSTOM /* S-port using custom type */
80 struct sparx5;
149 struct sparx5 *sparx5; member
151 struct phy *serdes; member
180 struct sparx5 { struct
230 int sparx5_register_notifier_blocks(struct sparx5 *sparx5); argument
231 void sparx5_unregister_notifier_blocks(struct sparx5 *sparx5);
238 void sparx5_xtr_flush(struct sparx5 *sparx5, u8 grp);
242 int sparx5_manual_injection_mode(struct sparx5 *sparx5);
246 int sparx5_fdma_start(struct sparx5 *sparx5);
247 int sparx5_fdma_stop(struct sparx5 *sparx5);
248 int sparx5_fdma_xmit(struct sparx5 *sparx5, u32 *ifh, struct sk_buff *skb);
253 int sparx5_mact_learn(struct sparx5 *sparx5, int port,
255 bool sparx5_mact_getnext(struct sparx5 *sparx5,
257 int sparx5_mact_forget(struct sparx5 *sparx5,
259 int sparx5_add_mact_entry(struct sparx5 *sparx5,
262 int sparx5_del_mact_entry(struct sparx5 *sparx5,
267 void sparx5_set_ageing(struct sparx5 *sparx5, int msecs);
268 void sparx5_mact_init(struct sparx5 *sparx5);
272 void sparx5_update_fwd(struct sparx5 *sparx5);
273 void sparx5_vlan_init(struct sparx5 *sparx5);
274 void sparx5_vlan_port_setup(struct sparx5 *sparx5, int portno);
278 void sparx5_vlan_port_apply(struct sparx5 *sparx5, struct sparx5_port *port);
281 int sparx5_config_auto_calendar(struct sparx5 *sparx5);
282 int sparx5_config_dsm_calendar(struct sparx5 *sparx5);
286 int sparx_stats_init(struct sparx5 *sparx5);
290 struct net_device *sparx5_create_netdev(struct sparx5 *sparx5, u32 portno);
291 int sparx5_register_netdevs(struct sparx5 *sparx5);
292 void sparx5_destroy_netdevs(struct sparx5 *sparx5);
293 void sparx5_unregister_netdevs(struct sparx5 *sparx5);
365 static inline u32 spx5_rd(struct sparx5 *sparx5, int id, int tinst, int tcnt, in spx5_rd() argument
369 return readl(spx5_addr(sparx5->regs, id, tinst, tcnt, gbase, ginst, in spx5_rd()
381 static inline void spx5_wr(u32 val, struct sparx5 *sparx5, in spx5_wr() argument
386 writel(val, spx5_addr(sparx5->regs, id, tinst, tcnt, in spx5_wr()
401 static inline void spx5_rmw(u32 val, u32 mask, struct sparx5 *sparx5, in spx5_rmw() argument
408 nval = readl(spx5_addr(sparx5->regs, id, tinst, tcnt, gbase, ginst, in spx5_rmw()
411 writel(nval, spx5_addr(sparx5->regs, id, tinst, tcnt, gbase, ginst, in spx5_rmw()
429 static inline void __iomem *spx5_inst_get(struct sparx5 *sparx5, int id, int tinst) in spx5_inst_get() argument
431 return sparx5->regs[id + tinst]; in spx5_inst_get()
434 static inline void __iomem *spx5_reg_get(struct sparx5 *sparx5, in spx5_reg_get() argument
439 return spx5_addr(sparx5->regs, id, tinst, tcnt, in spx5_reg_get()