Lines Matching full:cpsw

40 #include "am65-cpsw-nuss.h"
41 #include "am65-cpsw-switchdev.h"
292 "initializing am65 cpsw nuss version 0x%08X, cpsw version 0x%08X Ports: %u quirks:%08x\n", in am65_cpsw_nuss_get_ver()
1053 /* VLAN aware CPSW mode is incompatible with some DSA tagging schemes. in am65_cpsw_nuss_ndo_slave_open()
3072 static int am65_cpsw_register_notifiers(struct am65_cpsw_common *cpsw) in am65_cpsw_register_notifiers() argument
3076 if (AM65_CPSW_IS_CPSW2G(cpsw) || in am65_cpsw_register_notifiers()
3080 cpsw->am65_cpsw_netdevice_nb.notifier_call = &am65_cpsw_netdevice_event; in am65_cpsw_register_notifiers()
3081 ret = register_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_register_notifiers()
3083 dev_err(cpsw->dev, "can't register netdevice notifier\n"); in am65_cpsw_register_notifiers()
3087 ret = am65_cpsw_switchdev_register_notifiers(cpsw); in am65_cpsw_register_notifiers()
3089 unregister_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_register_notifiers()
3094 static void am65_cpsw_unregister_notifiers(struct am65_cpsw_common *cpsw) in am65_cpsw_unregister_notifiers() argument
3096 if (AM65_CPSW_IS_CPSW2G(cpsw) || in am65_cpsw_unregister_notifiers()
3100 am65_cpsw_switchdev_unregister_notifiers(cpsw); in am65_cpsw_unregister_notifiers()
3101 unregister_netdevice_notifier(&cpsw->am65_cpsw_netdevice_nb); in am65_cpsw_unregister_notifiers()
3106 static void am65_cpsw_init_stp_ale_entry(struct am65_cpsw_common *cpsw) in am65_cpsw_init_stp_ale_entry() argument
3108 cpsw_ale_add_mcast(cpsw->ale, eth_stp_addr, ALE_PORT_HOST, ALE_SUPER, 0, in am65_cpsw_init_stp_ale_entry()
3180 struct am65_cpsw_common *cpsw = port->common; in am65_cpsw_init_port_switch_ale() local
3183 cpsw_ale_control_set(cpsw->ale, port->port_id, in am65_cpsw_init_port_switch_ale()
3186 cpsw_ale_add_ucast(cpsw->ale, port->ndev->dev_addr, in am65_cpsw_init_port_switch_ale()
3192 cpsw_ale_add_mcast(cpsw->ale, port->ndev->broadcast, in am65_cpsw_init_port_switch_ale()
3198 cpsw_ale_control_set(cpsw->ale, port->port_id, in am65_cpsw_init_port_switch_ale()
3207 struct am65_cpsw_common *cpsw = dl_priv->common; in am65_cpsw_dl_switch_mode_set() local
3212 dev_dbg(cpsw->dev, "%s id:%u\n", __func__, id); in am65_cpsw_dl_switch_mode_set()
3217 if (switch_en == !cpsw->is_emac_mode) in am65_cpsw_dl_switch_mode_set()
3220 if (!switch_en && cpsw->br_members) { in am65_cpsw_dl_switch_mode_set()
3221 dev_err(cpsw->dev, "Remove ports from bridge before disabling switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3227 cpsw->is_emac_mode = !switch_en; in am65_cpsw_dl_switch_mode_set()
3229 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3230 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3240 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3241 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3249 slave->port_vlan = cpsw->default_vlan; in am65_cpsw_dl_switch_mode_set()
3257 cpsw_ale_control_set(cpsw->ale, 0, ALE_BYPASS, 1); in am65_cpsw_dl_switch_mode_set()
3259 cpsw_ale_control_set(cpsw->ale, HOST_PORT_NUM, ALE_CLEAR, 1); in am65_cpsw_dl_switch_mode_set()
3260 cpsw_ale_control_get(cpsw->ale, HOST_PORT_NUM, ALE_AGEOUT); in am65_cpsw_dl_switch_mode_set()
3263 dev_info(cpsw->dev, "Enable switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3265 am65_cpsw_init_host_port_switch(cpsw); in am65_cpsw_dl_switch_mode_set()
3267 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3268 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3277 slave->port_vlan = cpsw->default_vlan; in am65_cpsw_dl_switch_mode_set()
3284 dev_info(cpsw->dev, "Disable switch mode\n"); in am65_cpsw_dl_switch_mode_set()
3286 am65_cpsw_init_host_port_emac(cpsw); in am65_cpsw_dl_switch_mode_set()
3288 for (i = 0; i < cpsw->port_num; i++) { in am65_cpsw_dl_switch_mode_set()
3289 struct net_device *sl_ndev = cpsw->ports[i].ndev; in am65_cpsw_dl_switch_mode_set()
3301 cpsw_ale_control_set(cpsw->ale, HOST_PORT_NUM, ALE_BYPASS, 0); in am65_cpsw_dl_switch_mode_set()
3560 { .compatible = "ti,am654-cpsw-nuss", .data = &am65x_sr1_0},
3561 { .compatible = "ti,j721e-cpsw-nuss", .data = &j721e_pdata},
3562 { .compatible = "ti,am642-cpsw-nuss", .data = &am64x_cpswxg_pdata},
3879 MODULE_DESCRIPTION("TI AM65 CPSW Ethernet driver");