Lines Matching +full:in +full:- +full:band
1 .. SPDX-License-Identifier: GPL-2.0
10 phylink is a mechanism to support hot-pluggable networking modules
11 directly connected to a MAC without needing to re-initialise the
12 adapter on hot-plug events.
14 phylink supports conventional phylib-based setups, fixed link setups
25 In PHY mode, we use phylib to read the current link settings from
35 3. In-band mode
37 In-band mode is used with 802.3z, SGMII and similar interface modes,
38 and we are expecting to use and honor the in-band negotiation or
43 .. code-block:: none
47 phy-mode = "sgmii";
50 does not use in-band SGMII signalling. The PHY is expected to follow
51 exactly the settings given to it in its :c:func:`mac_config` function.
52 The link should be forced up or down appropriately in the
55 .. code-block:: none
58 managed = "in-band-status";
60 phy-mode = "sgmii";
63 uses in-band mode, where results from the PHY's negotiation are passed
77 three parts dealing with link-down, link-up and reconfiguring the
80 An example of this preparation can be found in git commit fc548b991fb0.
91 in the driver's Kconfig stanza.
110 .. flat-table::
111 :header-rows: 1
113 :stub-columns: 0
115 * - Original function
116 - Replacement function
117 * - phy_start(phydev)
118 - phylink_start(priv->phylink)
119 * - phy_stop(phydev)
120 - phylink_stop(priv->phylink)
121 * - phy_mii_ioctl(phydev, ifr, cmd)
122 - phylink_mii_ioctl(priv->phylink, ifr, cmd)
123 * - phy_ethtool_get_wol(phydev, wol)
124 - phylink_ethtool_get_wol(priv->phylink, wol)
125 * - phy_ethtool_set_wol(phydev, wol)
126 - phylink_ethtool_set_wol(priv->phylink, wol)
127 * - phy_disconnect(phydev)
128 - phylink_disconnect_phy(priv->phylink)
136 .. code-block:: c
143 return phylink_ethtool_ksettings_set(priv->phylink, cmd);
151 return phylink_ethtool_ksettings_get(priv->phylink, cmd);
160 err = phylink_of_phy_connect(priv->phylink, node, flags);
164 in the DT node ``node``.
174 described below in (8).
177 based on the validate callback, see below in (8).
184 anymore; that is because in the phylink model, the PHY can be
194 It is important that if in-band negotiation is used,
196 in-band negotiation from completing, since these functions are called
197 when the in-band link state changes - otherwise the link will never
201 and ``state->advertising`` with the supported ethtool link modes.
207 using. This is particularly important for in-band negotiation
208 methods such as 1000base-X and SGMII.
215 of how to do this can be found in :c:func:`mvneta_mac_config` in
219 documentation in :c:type:`struct phylink_mac_ops <phylink_mac_ops>`.
225 .. code-block:: c
228 priv->phylink_config.dev = &dev.dev;
229 priv->phylink_config.type = PHYLINK_NETDEV;
231 phylink = phylink_create(&priv->phylink_config, node, phy_mode, &phylink_ops);
237 priv->phylink = phylink;
239 and arrange to destroy the phylink in the probe failure path as
242 .. code-block:: c
244 phylink_destroy(priv->phylink);
249 .. code-block:: c
251 phylink_mac_change(priv->phylink, link_is_up);
270 For information describing the SFP cage in DT, please see the binding
271 documentation in the kernel source tree