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 two parts dealing with link-down and link-up. This can be done as
80 An older example of this preparation can be found in git commit
82 link-up part now includes configuring the MAC for the link settings.
94 in the driver's Kconfig stanza.
113 .. flat-table::
114 :header-rows: 1
116 :stub-columns: 0
118 * - Original function
119 - Replacement function
120 * - phy_start(phydev)
121 - phylink_start(priv->phylink)
122 * - phy_stop(phydev)
123 - phylink_stop(priv->phylink)
124 * - phy_mii_ioctl(phydev, ifr, cmd)
125 - phylink_mii_ioctl(priv->phylink, ifr, cmd)
126 * - phy_ethtool_get_wol(phydev, wol)
127 - phylink_ethtool_get_wol(priv->phylink, wol)
128 * - phy_ethtool_set_wol(phydev, wol)
129 - phylink_ethtool_set_wol(priv->phylink, wol)
130 * - phy_disconnect(phydev)
131 - phylink_disconnect_phy(priv->phylink)
139 .. code-block:: c
146 return phylink_ethtool_ksettings_set(priv->phylink, cmd);
154 return phylink_ethtool_ksettings_get(priv->phylink, cmd);
163 err = phylink_of_phy_connect(priv->phylink, node, flags);
167 in the DT node ``node``.
177 described below in (8).
180 based on the validate callback, see below in (8).
187 anymore; that is because in the phylink model, the PHY can be
197 It is important that if in-band negotiation is used,
199 in-band negotiation from completing, since these functions are called
200 when the in-band link state changes - otherwise the link will never
204 and ``state->advertising`` with the supported ethtool link modes.
210 using. This is particularly important for in-band negotiation
211 methods such as 1000base-X and SGMII.
218 tightly integrated, or when the settings are not coming from in-band
226 of how to do this can be found in :c:func:`mvneta_mac_config` in
230 documentation in :c:type:`struct phylink_mac_ops <phylink_mac_ops>`.
236 .. code-block:: c
239 priv->phylink_config.dev = &dev.dev;
240 priv->phylink_config.type = PHYLINK_NETDEV;
242 phylink = phylink_create(&priv->phylink_config, node, phy_mode, &phylink_ops);
248 priv->phylink = phylink;
250 and arrange to destroy the phylink in the probe failure path as
253 .. code-block:: c
255 phylink_destroy(priv->phylink);
260 .. code-block:: c
262 phylink_mac_change(priv->phylink, link_is_up);
266 it should set ``priv->phylink_config.pcs_poll = true;`` in step 9.
282 For information describing the SFP cage in DT, please see the binding
283 documentation in the kernel source tree