Lines Matching refs:ds
428 mt7530_pad_clk_setup(struct dsa_switch *ds, int mode) in mt7530_pad_clk_setup() argument
430 struct mt7530_priv *priv = ds->priv; in mt7530_pad_clk_setup()
542 mt7623_pad_clk_setup(struct dsa_switch *ds) in mt7623_pad_clk_setup() argument
544 struct mt7530_priv *priv = ds->priv; in mt7623_pad_clk_setup()
558 mt7530_mib_reset(struct dsa_switch *ds) in mt7530_mib_reset() argument
560 struct mt7530_priv *priv = ds->priv; in mt7530_mib_reset()
577 static int mt7530_phy_read(struct dsa_switch *ds, int port, int regnum) in mt7530_phy_read() argument
579 struct mt7530_priv *priv = ds->priv; in mt7530_phy_read()
584 static int mt7530_phy_write(struct dsa_switch *ds, int port, int regnum, in mt7530_phy_write() argument
587 struct mt7530_priv *priv = ds->priv; in mt7530_phy_write()
593 mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, in mt7530_get_strings() argument
607 mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, in mt7530_get_ethtool_stats() argument
610 struct mt7530_priv *priv = ds->priv; in mt7530_get_ethtool_stats()
628 mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) in mt7530_get_sset_count() argument
636 static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port5() argument
638 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port5()
669 dev_err(ds->dev, "Unsupported p5_intf_sel %d\n", in mt7530_setup_port5()
682 if (!dsa_is_dsa_port(priv->ds, 5) && in mt7530_setup_port5()
698 dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, intf_sel=%s, phy-mode=%s\n", in mt7530_setup_port5()
729 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt7530_cpu_port_enable()
735 mt7530_port_enable(struct dsa_switch *ds, int port, in mt7530_port_enable() argument
738 struct mt7530_priv *priv = ds->priv; in mt7530_port_enable()
740 if (!dsa_is_user_port(ds, port)) in mt7530_port_enable()
761 mt7530_port_disable(struct dsa_switch *ds, int port) in mt7530_port_disable() argument
763 struct mt7530_priv *priv = ds->priv; in mt7530_port_disable()
765 if (!dsa_is_user_port(ds, port)) in mt7530_port_disable()
782 mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) in mt7530_stp_state_set() argument
784 struct mt7530_priv *priv = ds->priv; in mt7530_stp_state_set()
810 mt7530_port_bridge_join(struct dsa_switch *ds, int port, in mt7530_port_bridge_join() argument
813 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_join()
824 if (dsa_is_user_port(ds, i) && i != port) { in mt7530_port_bridge_join()
825 if (dsa_to_port(ds, i)->bridge_dev != bridge) in mt7530_port_bridge_join()
848 mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_unaware() argument
850 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_unaware()
864 if (dsa_is_user_port(ds, i) && in mt7530_port_set_vlan_unaware()
865 dsa_port_is_vlan_filtering(&ds->ports[i])) { in mt7530_port_set_vlan_unaware()
876 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt7530_port_set_vlan_unaware()
883 mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_aware() argument
885 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_aware()
909 mt7530_port_bridge_leave(struct dsa_switch *ds, int port, in mt7530_port_bridge_leave() argument
912 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_leave()
924 if (dsa_is_user_port(ds, i) && i != port && in mt7530_port_bridge_leave()
925 !dsa_port_is_vlan_filtering(&ds->ports[i])) { in mt7530_port_bridge_leave()
926 if (dsa_to_port(ds, i)->bridge_dev != bridge) in mt7530_port_bridge_leave()
947 mt7530_port_fdb_add(struct dsa_switch *ds, int port, in mt7530_port_fdb_add() argument
950 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_add()
963 mt7530_port_fdb_del(struct dsa_switch *ds, int port, in mt7530_port_fdb_del() argument
966 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_del()
979 mt7530_port_fdb_dump(struct dsa_switch *ds, int port, in mt7530_port_fdb_dump() argument
982 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_dump()
1041 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, in mt7530_port_vlan_filtering() argument
1050 mt7530_port_set_vlan_aware(ds, port); in mt7530_port_vlan_filtering()
1051 mt7530_port_set_vlan_aware(ds, MT7530_CPU_PORT); in mt7530_port_vlan_filtering()
1053 mt7530_port_set_vlan_unaware(ds, port); in mt7530_port_vlan_filtering()
1060 mt7530_port_vlan_prepare(struct dsa_switch *ds, int port, in mt7530_port_vlan_prepare() argument
1156 mt7530_port_vlan_add(struct dsa_switch *ds, int port, in mt7530_port_vlan_add() argument
1162 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_add()
1168 if (!dsa_port_is_vlan_filtering(&ds->ports[port])) in mt7530_port_vlan_add()
1189 mt7530_port_vlan_del(struct dsa_switch *ds, int port, in mt7530_port_vlan_del() argument
1193 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_del()
1199 if (!dsa_port_is_vlan_filtering(&ds->ports[port])) in mt7530_port_vlan_del()
1226 mtk_get_tag_protocol(struct dsa_switch *ds, int port) in mtk_get_tag_protocol() argument
1228 struct mt7530_priv *priv = ds->priv; in mtk_get_tag_protocol()
1240 mt7530_setup(struct dsa_switch *ds) in mt7530_setup() argument
1242 struct mt7530_priv *priv = ds->priv; in mt7530_setup()
1255 dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent; in mt7530_setup()
1322 mt7530_mib_reset(ds); in mt7530_setup()
1331 if (dsa_is_cpu_port(ds, i)) in mt7530_setup()
1334 mt7530_port_disable(ds, i); in mt7530_setup()
1341 if (!dsa_is_unused_port(ds, 5)) { in mt7530_setup()
1343 interface = of_get_phy_mode(ds->ports[5].dn); in mt7530_setup()
1358 id = of_mdio_parse_addr(ds->dev, phy_node); in mt7530_setup()
1369 mt7530_setup_port5(ds, interface); in mt7530_setup()
1379 static void mt7530_phylink_mac_config(struct dsa_switch *ds, int port, in mt7530_phylink_mac_config() argument
1383 struct mt7530_priv *priv = ds->priv; in mt7530_phylink_mac_config()
1403 mt7530_setup_port5(ds, state->interface); in mt7530_phylink_mac_config()
1414 mt7530_pad_clk_setup(ds, state->interface); in mt7530_phylink_mac_config()
1421 mt7623_pad_clk_setup(ds); in mt7530_phylink_mac_config()
1427 dev_err(ds->dev, "%s: unsupported port: %i\n", __func__, port); in mt7530_phylink_mac_config()
1432 dev_err(ds->dev, "%s: in-band negotiation unsupported\n", in mt7530_phylink_mac_config()
1445 if (port == 5 && dsa_is_user_port(ds, 5)) in mt7530_phylink_mac_config()
1468 static void mt7530_phylink_mac_link_down(struct dsa_switch *ds, int port, in mt7530_phylink_mac_link_down() argument
1472 struct mt7530_priv *priv = ds->priv; in mt7530_phylink_mac_link_down()
1477 static void mt7530_phylink_mac_link_up(struct dsa_switch *ds, int port, in mt7530_phylink_mac_link_up() argument
1482 struct mt7530_priv *priv = ds->priv; in mt7530_phylink_mac_link_up()
1487 static void mt7530_phylink_validate(struct dsa_switch *ds, int port, in mt7530_phylink_validate() argument
1517 dev_err(ds->dev, "%s: unsupported port: %i\n", __func__, port); in mt7530_phylink_validate()
1550 mt7530_phylink_mac_link_state(struct dsa_switch *ds, int port, in mt7530_phylink_mac_link_state() argument
1553 struct mt7530_priv *priv = ds->priv; in mt7530_phylink_mac_link_state()
1635 priv->ds = dsa_switch_alloc(&mdiodev->dev, DSA_MAX_PORTS); in mt7530_probe()
1636 if (!priv->ds) in mt7530_probe()
1685 priv->ds->priv = priv; in mt7530_probe()
1686 priv->ds->ops = &mt7530_switch_ops; in mt7530_probe()
1690 return dsa_register_switch(priv->ds); in mt7530_probe()
1709 dsa_unregister_switch(priv->ds); in mt7530_remove()