Lines Matching full:cpsw

40 #include "am65-cpsw-nuss.h"
41 #include "am65-cpsw-switchdev.h"
293 "initializing am65 cpsw nuss version 0x%08X, cpsw version 0x%08X Ports: %u quirks:%08x\n", in am65_cpsw_nuss_get_ver()
1052 /* VLAN aware CPSW mode is incompatible with some DSA tagging schemes. in am65_cpsw_nuss_ndo_slave_open()
2676 /* CPSW controllers supported by this driver have a fixed in am65_cpsw_nuss_init_slave_ports()
3005 static int am65_cpsw_register_notifiers(struct am65_cpsw_common *cpsw) in am65_cpsw_register_notifiers() argument
3009 if (AM65_CPSW_IS_CPSW2G(cpsw) || in am65_cpsw_register_notifiers()
3013 cpsw->am65_cpsw_netdevice_nb.notifier_call = &am65_cpsw_netdevice_event; in am65_cpsw_register_notifiers()
3014 ret = register_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_register_notifiers()
3016 dev_err(cpsw->dev, "can't register netdevice notifier\n"); in am65_cpsw_register_notifiers()
3020 ret = am65_cpsw_switchdev_register_notifiers(cpsw); in am65_cpsw_register_notifiers()
3022 unregister_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_register_notifiers()
3027 static void am65_cpsw_unregister_notifiers(struct am65_cpsw_common *cpsw) in am65_cpsw_unregister_notifiers() argument
3029 if (AM65_CPSW_IS_CPSW2G(cpsw) || in am65_cpsw_unregister_notifiers()
3033 am65_cpsw_switchdev_unregister_notifiers(cpsw); in am65_cpsw_unregister_notifiers()
3034 unregister_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_unregister_notifiers()
3039 static void am65_cpsw_init_stp_ale_entry(struct am65_cpsw_common *cpsw) in am65_cpsw_init_stp_ale_entry() argument
3041 cpsw_ale_add_mcast(cpsw->ale, eth_stp_addr, ALE_PORT_HOST, ALE_SUPER, 0, in am65_cpsw_init_stp_ale_entry()
3113 struct am65_cpsw_common *cpsw = port->common; in am65_cpsw_init_port_switch_ale() local
3116 cpsw_ale_control_set(cpsw->ale, port->port_id, in am65_cpsw_init_port_switch_ale()
3119 cpsw_ale_add_ucast(cpsw->ale, port->ndev->dev_addr, in am65_cpsw_init_port_switch_ale()
3125 cpsw_ale_add_mcast(cpsw->ale, port->ndev->broadcast, in am65_cpsw_init_port_switch_ale()
3131 cpsw_ale_control_set(cpsw->ale, port->port_id, in am65_cpsw_init_port_switch_ale()
3140 struct am65_cpsw_common *cpsw = dl_priv->common; in am65_cpsw_dl_switch_mode_set() local
3145 dev_dbg(cpsw->dev, "%s id:%u\n", __func__, id); in am65_cpsw_dl_switch_mode_set()
3150 if (switch_en == !cpsw->is_emac_mode) in am65_cpsw_dl_switch_mode_set()
3153 if (!switch_en && cpsw->br_members) { in am65_cpsw_dl_switch_mode_set()
3154 dev_err(cpsw->dev, "Remove ports from bridge before disabling switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3160 cpsw->is_emac_mode = !switch_en; in am65_cpsw_dl_switch_mode_set()
3162 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3163 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3173 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3174 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3182 slave->port_vlan = cpsw->default_vlan; in am65_cpsw_dl_switch_mode_set()
3190 cpsw_ale_control_set(cpsw->ale, 0, ALE_BYPASS, 1); in am65_cpsw_dl_switch_mode_set()
3192 cpsw_ale_control_set(cpsw->ale, HOST_PORT_NUM, ALE_CLEAR, 1); in am65_cpsw_dl_switch_mode_set()
3193 cpsw_ale_control_get(cpsw->ale, HOST_PORT_NUM, ALE_AGEOUT); in am65_cpsw_dl_switch_mode_set()
3196 dev_info(cpsw->dev, "Enable switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3198 am65_cpsw_init_host_port_switch(cpsw); in am65_cpsw_dl_switch_mode_set()
3200 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3201 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3210 slave->port_vlan = cpsw->default_vlan; in am65_cpsw_dl_switch_mode_set()
3217 dev_info(cpsw->dev, "Disable switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3219 am65_cpsw_init_host_port_emac(cpsw); in am65_cpsw_dl_switch_mode_set()
3221 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3222 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3234 cpsw_ale_control_set(cpsw->ale, HOST_PORT_NUM, ALE_BYPASS, 0); in am65_cpsw_dl_switch_mode_set()
3493 { .compatible = "ti,am654-cpsw-nuss", .data = &am65x_sr1_0},
3494 { .compatible = "ti,j721e-cpsw-nuss", .data = &j721e_pdata},
3495 { .compatible = "ti,am642-cpsw-nuss", .data = &am64x_cpswxg_pdata},
3816 MODULE_DESCRIPTION("TI AM65 CPSW Ethernet driver");