[PATCH v3 7/8] netdev: octeon-ethernet: Add Cavium Octeon III support.

Andrew Lunn andrew at lunn.ch
Thu Nov 9 22:23:52 UTC 2017


> +	priv->phy_np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
> +	priv->phy_mode = of_get_phy_mode(pdev->dev.of_node);
> +	/* If phy-mode absent, default to SGMII. */
> +	if (priv->phy_mode < 0)
> +		priv->phy_mode = PHY_INTERFACE_MODE_SGMII;
> +
> +	if (priv->phy_mode == PHY_INTERFACE_MODE_1000BASEX)
> +		priv->mode_1000basex = true;
> +
> +	if (of_phy_is_fixed_link(pdev->dev.of_node))
> +		priv->bgx_as_phy = true;
> +

...

> +	priv->mode = bgx_port_get_mode(priv->node, priv->bgx, priv->index);
> +

It might be a good idea to verify priv->phy_mode and priv->mode are
compatible.

> +	switch (priv->mode) {
> +	case PORT_MODE_SGMII:
> +	case PORT_MODE_RGMII:
> +		priv->get_link = bgx_port_get_sgmii_link;
> +		priv->set_link = bgx_port_set_xgmii_link;
> +		break;
> +	case PORT_MODE_XAUI:
> +	case PORT_MODE_RXAUI:
> +	case PORT_MODE_XLAUI:
> +	case PORT_MODE_XFI:
> +	case PORT_MODE_10G_KR:
> +	case PORT_MODE_40G_KR4:
> +		priv->get_link = bgx_port_get_xaui_link;
> +		priv->set_link = bgx_port_set_xaui_link;
> +		break;


  Andrew


More information about the devel mailing list