Commit e02adac7 authored by Matthias Schiffer's avatar Matthias Schiffer Committed by Paolo Abeni
Browse files

checkpatch: check for comment explaining rgmii(|-rxid|-txid) PHY modes



Historically, the RGMII PHY modes specified in Device Trees have been
used inconsistently, often referring to the usage of delays on the PHY
side rather than describing the board; many drivers still implement this
incorrectly.

Require a comment in Devices Trees using these modes (usually mentioning
that the delay is realized on the PCB), so we can avoid adding more
incorrect uses (or will at least notice which drivers still need to be
fixed).

Suggested-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/bc112b8aa510cf9df9ab33178d122f234d0aebf7.1750756583.git.matthias.schiffer@ew.tq-group.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent ca13b249
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -495,6 +495,15 @@ Comments

    See: https://lore.kernel.org/lkml/20131006222342.GT19510@leaf/

  **UNCOMMENTED_RGMII_MODE**
    Historically, the RGMII PHY modes specified in Device Trees have been
    used inconsistently, often referring to the usage of delays on the PHY
    side rather than describing the board.

    PHY modes "rgmii", "rgmii-rxid" and "rgmii-txid" modes require the clock
    signal to be delayed on the PCB; this unusual configuration should be
    described in a comment. If they are not (meaning that the delay is realized
    internally in the MAC or PHY), "rgmii-id" is the correct PHY mode.

Commit message
--------------
+12 −0
Original line number Diff line number Diff line
@@ -3741,6 +3741,18 @@ sub process {
			}
		}

# Check for RGMII phy-mode with delay on PCB
		if ($realfile =~ /\.(dts|dtsi|dtso)$/ &&
		    $line =~ /^\+\s*(phy-mode|phy-connection-type)\s*=\s*"/ &&
		    !ctx_has_comment($first_line, $linenr)) {
			my $prop = $1;
			my $mode = get_quoted_string($line, $rawline);
			if ($mode =~ /^"rgmii(?:|-rxid|-txid)"$/) {
				WARN("UNCOMMENTED_RGMII_MODE",
				     "$prop $mode without comment -- delays on the PCB should be described, otherwise use \"rgmii-id\"\n" . $herecurr);
			}
		}

# check for using SPDX license tag at beginning of files
		if ($realline == $checklicenseline) {
			if ($rawline =~ /^[ \+]\s*\#\!\s*\//) {