Lines Matching defs:ocelot
15 #include <soc/mscc/ocelot.h>
37 struct ocelot *ocelot = ds->priv;
39 ocelot_set_ageing_time(ocelot, ageing_time);
47 struct ocelot *ocelot = ds->priv;
49 return ocelot_fdb_dump(ocelot, port, cb, data);
55 struct ocelot *ocelot = ds->priv;
57 return ocelot_fdb_add(ocelot, port, addr, vid);
63 struct ocelot *ocelot = ds->priv;
65 return ocelot_fdb_del(ocelot, port, addr, vid);
78 struct ocelot *ocelot = ds->priv;
80 ocelot_port_mdb_add(ocelot, port, mdb);
86 struct ocelot *ocelot = ds->priv;
88 return ocelot_port_mdb_del(ocelot, port, mdb);
94 struct ocelot *ocelot = ds->priv;
96 return ocelot_bridge_stp_state_set(ocelot, port, state);
102 struct ocelot *ocelot = ds->priv;
104 return ocelot_port_bridge_join(ocelot, port, br);
110 struct ocelot *ocelot = ds->priv;
112 ocelot_port_bridge_leave(ocelot, port, br);
125 struct ocelot *ocelot = ds->priv;
127 return ocelot_port_vlan_filtering(ocelot, port, enabled, trans);
133 struct ocelot *ocelot = ds->priv;
142 err = ocelot_vlan_add(ocelot, port, vid,
156 struct ocelot *ocelot = ds->priv;
161 err = ocelot_vlan_del(ocelot, port, vid);
174 struct ocelot *ocelot = ds->priv;
176 ocelot_port_enable(ocelot, port, phy);
183 struct ocelot *ocelot = ds->priv;
185 return ocelot_port_disable(ocelot, port);
192 struct ocelot *ocelot = ds->priv;
193 struct felix *felix = ocelot_to_felix(ocelot);
196 felix->info->phylink_validate(ocelot, port, supported, state);
203 struct ocelot *ocelot = ds->priv;
204 struct felix *felix = ocelot_to_felix(ocelot);
215 struct ocelot *ocelot = ds->priv;
216 struct ocelot_port *ocelot_port = ocelot->ports[port];
222 ocelot_fields_write(ocelot, port, QSYS_SWITCH_PORT_MODE_PORT_ENA, 0);
224 err = ocelot_port_flush(ocelot, port);
226 dev_err(ocelot->dev, "failed to flush port %d: %d\n",
244 struct ocelot *ocelot = ds->priv;
245 struct ocelot_port *ocelot_port = ocelot->ports[port];
246 struct felix *felix = ocelot_to_felix(ocelot);
272 dev_err(ocelot->dev, "Unsupported speed on port %d: %d\n",
291 ocelot_write_rix(ocelot, mac_fc_cfg, SYS_MAC_FC_CFG, port);
293 ocelot_write_rix(ocelot, 0, ANA_POL_FLOWC, port);
304 ocelot_write_gix(ocelot, ANA_PORT_PORT_CFG_LEARNAUTO |
310 ocelot_fields_write(ocelot, port,
314 felix->info->port_sched_speed_set(ocelot, port, speed);
317 static void felix_port_qos_map_init(struct ocelot *ocelot, int port)
321 ocelot_rmw_gix(ocelot,
328 ocelot_rmw_ix(ocelot,
341 struct ocelot *ocelot = ds->priv;
343 return ocelot_get_strings(ocelot, port, stringset, data);
348 struct ocelot *ocelot = ds->priv;
350 ocelot_get_ethtool_stats(ocelot, port, data);
355 struct ocelot *ocelot = ds->priv;
357 return ocelot_get_sset_count(ocelot, port, sset);
363 struct ocelot *ocelot = ds->priv;
365 return ocelot_get_ts_info(ocelot, port, info);
372 struct ocelot *ocelot = &felix->ocelot;
373 struct device *dev = felix->ocelot.dev;
399 err = felix->info->prevalidate_phy_mode(ocelot, port, phy_mode);
415 struct device *dev = felix->ocelot.dev;
436 struct ocelot *ocelot = &felix->ocelot;
441 ocelot->num_phys_ports = num_phys_ports;
442 ocelot->ports = devm_kcalloc(ocelot->dev, num_phys_ports,
444 if (!ocelot->ports)
447 ocelot->map = felix->info->map;
448 ocelot->stats_layout = felix->info->stats_layout;
449 ocelot->num_stats = felix->info->num_stats;
450 ocelot->shared_queue_sz = felix->info->shared_queue_sz;
451 ocelot->num_mact_rows = felix->info->num_mact_rows;
452 ocelot->vcap = felix->info->vcap;
453 ocelot->ops = felix->info->ops;
454 ocelot->inj_prefix = OCELOT_TAG_PREFIX_SHORT;
455 ocelot->xtr_prefix = OCELOT_TAG_PREFIX_SHORT;
479 target = ocelot_regmap_init(ocelot, &res);
481 dev_err(ocelot->dev,
487 ocelot->targets[i] = target;
490 err = ocelot_regfields_init(ocelot, felix->info->regfields);
492 dev_err(ocelot->dev, "failed to init reg fields map\n");
502 ocelot_port = devm_kzalloc(ocelot->dev,
506 dev_err(ocelot->dev,
517 target = ocelot_regmap_init(ocelot, &res);
519 dev_err(ocelot->dev,
526 template = devm_kzalloc(ocelot->dev, OCELOT_TOTAL_TAG_LEN,
529 dev_err(ocelot->dev,
536 ocelot_port->ocelot = ocelot;
539 ocelot->ports[port] = ocelot_port;
541 felix->info->xmit_template_populate(ocelot, port);
547 err = felix->info->mdio_bus_alloc(ocelot);
559 static void felix_npi_port_init(struct ocelot *ocelot, int port)
561 ocelot->npi = port;
563 ocelot_write(ocelot, QSYS_EXT_CPU_CFG_EXT_CPUQ_MSK_M |
568 ocelot_fields_write(ocelot, port, SYS_PORT_MODE_INCL_XTR_HDR,
569 ocelot->xtr_prefix);
570 ocelot_fields_write(ocelot, port, SYS_PORT_MODE_INCL_INJ_HDR,
571 ocelot->inj_prefix);
574 ocelot_fields_write(ocelot, port, SYS_PAUSE_CFG_PAUSE_ENA, 0);
584 struct ocelot *ocelot = ds->priv;
585 struct felix *felix = ocelot_to_felix(ocelot);
592 err = ocelot_init(ocelot);
596 if (ocelot->ptp) {
597 err = ocelot_init_timestamp(ocelot, felix->info->ptp_caps);
599 dev_err(ocelot->dev,
601 ocelot->ptp = 0;
606 ocelot_init_port(ocelot, port);
609 felix_npi_port_init(ocelot, port);
614 felix_port_qos_map_init(ocelot, port);
619 * excludes BIT(ocelot->num_phys_ports), and so does ocelot_init, since
622 ocelot_write_rix(ocelot,
623 ANA_PGID_PGID_PGID(GENMASK(ocelot->num_phys_ports, 0)),
634 struct ocelot *ocelot = ds->priv;
635 struct felix *felix = ocelot_to_felix(ocelot);
638 ocelot_deinit_timestamp(ocelot);
639 ocelot_deinit(ocelot);
641 for (port = 0; port < ocelot->num_phys_ports; port++) {
645 ocelot_deinit_port(ocelot, port);
649 felix->info->mdio_bus_free(ocelot);
655 struct ocelot *ocelot = ds->priv;
657 return ocelot_hwstamp_get(ocelot, port, ifr);
663 struct ocelot *ocelot = ds->priv;
665 return ocelot_hwstamp_set(ocelot, port, ifr);
672 struct ocelot *ocelot = ds->priv;
678 ocelot_ptp_gettime64(&ocelot->ptp_info, &ts);
699 struct ocelot *ocelot = ds->priv;
700 struct ocelot_port *ocelot_port = ocelot->ports[port];
702 if (ocelot->ptp && (skb_shinfo(clone)->tx_flags & SKBTX_HW_TSTAMP) &&
704 ocelot_port_add_txtstamp_skb(ocelot, port, clone);
713 struct ocelot *ocelot = ds->priv;
715 ocelot_port_set_maxlen(ocelot, port, new_mtu);
722 struct ocelot *ocelot = ds->priv;
724 return ocelot_get_max_mtu(ocelot, port);
730 struct ocelot *ocelot = ds->priv;
732 return ocelot_cls_flower_replace(ocelot, port, cls, ingress);
738 struct ocelot *ocelot = ds->priv;
740 return ocelot_cls_flower_destroy(ocelot, port, cls, ingress);
746 struct ocelot *ocelot = ds->priv;
748 return ocelot_cls_flower_stats(ocelot, port, cls, ingress);
754 struct ocelot *ocelot = ds->priv;
760 return ocelot_port_policer_add(ocelot, port, &pol);
765 struct ocelot *ocelot = ds->priv;
767 ocelot_port_policer_del(ocelot, port);
774 struct ocelot *ocelot = ds->priv;
775 struct felix *felix = ocelot_to_felix(ocelot);
825 struct net_device *felix_port_to_netdev(struct ocelot *ocelot, int port)
827 struct felix *felix = ocelot_to_felix(ocelot);