Message ID | 20210604140151.2885611-2-olteanv@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c858d436be8b949c368de0e079084acaff3d4aaf |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Convert NXP SJA1105 DSA driver to YAML | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 8 of 8 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 457 this patch: 457 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | warning | WARNING: DT binding docs and includes should be a separate patch. See: Documentation/devicetree/bindings/submitting-patches.rst |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 373 this patch: 373 |
netdev/header_inline | success | Link |
On 6/4/2021 7:01 AM, Vladimir Oltean wrote: > From: Vladimir Oltean <vladimir.oltean@nxp.com> > > The "reverse RMII" protocol name is a personal invention, derived from > "reverse MII". > > Just like MII, RMII is an asymmetric protocol in that a PHY behaves > differently than a MAC. In the case of RMII, for example: > - the 50 MHz clock signals are either driven by the MAC or by an > external oscillator (but never by the PHY). > - the PHY can transmit extra in-band control symbols via RXD[1:0] which > the MAC is supposed to understand, but a PHY isn't. > > The "reverse MII" protocol is not standardized either, except for this > web document: > https://www.eetimes.com/reverse-media-independent-interface-revmii-block-architecture/# > > In short, it means that the Ethernet controller speaks the 4-bit data > parallel protocol from the perspective of a PHY (it acts like a PHY). > This might mean that it implements clause 22 compatible registers, > although that is optional - the important bit is that its pins can be > connected to an MII MAC and it will 'just work'. > > In this discussion thread: > https://lore.kernel.org/netdev/20210201214515.cx6ivvme2tlquge2@skbuf/ > > we agreed that it would be an abuse of terms to use the "RevMII" name > for anything than the 4-bit parallel MII protocol. But since all the > same concepts can be applied to the 2-bit Reduced MII protocol as well, > here we are introducing a "Reverse RMII" protocol. This means: "behave > like an RMII PHY". > > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml index e8f04687a3e0..d97b561003ed 100644 --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml @@ -68,6 +68,7 @@ properties: - tbi - rev-mii - rmii + - rev-rmii # RX and TX delays are added by the MAC when required - rgmii diff --git a/include/linux/phy.h b/include/linux/phy.h index 852743f07e3e..ed332ac92e25 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -93,6 +93,7 @@ extern const int phy_10gbit_features_array[1]; * @PHY_INTERFACE_MODE_TBI: Ten Bit Interface * @PHY_INTERFACE_MODE_REVMII: Reverse Media Independent Interface * @PHY_INTERFACE_MODE_RMII: Reduced Media Independent Interface + * @PHY_INTERFACE_MODE_REVRMII: Reduced Media Independent Interface in PHY role * @PHY_INTERFACE_MODE_RGMII: Reduced gigabit media-independent interface * @PHY_INTERFACE_MODE_RGMII_ID: RGMII with Internal RX+TX delay * @PHY_INTERFACE_MODE_RGMII_RXID: RGMII with Internal RX delay @@ -126,6 +127,7 @@ typedef enum { PHY_INTERFACE_MODE_TBI, PHY_INTERFACE_MODE_REVMII, PHY_INTERFACE_MODE_RMII, + PHY_INTERFACE_MODE_REVRMII, PHY_INTERFACE_MODE_RGMII, PHY_INTERFACE_MODE_RGMII_ID, PHY_INTERFACE_MODE_RGMII_RXID, @@ -185,6 +187,8 @@ static inline const char *phy_modes(phy_interface_t interface) return "rev-mii"; case PHY_INTERFACE_MODE_RMII: return "rmii"; + case PHY_INTERFACE_MODE_REVRMII: + return "rev-rmii"; case PHY_INTERFACE_MODE_RGMII: return "rgmii"; case PHY_INTERFACE_MODE_RGMII_ID: