From: Dan Murphy <dmurphy@ti.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>, <hkallweit1@gmail.com>,
<davem@davemloft.net>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH net-next v2 3/4] dt-bindings: net: Add RGMII internal delay for DP83869
Date: Wed, 20 May 2020 15:55:14 -0500 [thread overview]
Message-ID: <ecee51d5-a69e-4f7e-2a33-ae7aae63fec8@ti.com> (raw)
In-Reply-To: <20200520204423.GA677363@lunn.ch>
Andrew
On 5/20/20 3:44 PM, Andrew Lunn wrote:
>> I think adding it in the core would be a bit of a challenge. I think each
>> PHY driver needs to handle parsing and validating this property on its own
>> (like fifo-depth). It is a PHY specific setting.
> fifo-depth yes. But some delays follow a common pattern.
>
> e.g.
> Documentation/devicetree/bindings/net/micrel-ksz90x1.txt
>
> Device Tree Value Delay Pad Skew Register Value
> -----------------------------------------------------
> 0 -840ps 0000
> 200 -720ps 0001
> 400 -600ps 0010
> 600 -480ps 0011
> 800 -360ps 0100
> 1000 -240ps 0101
> 1200 -120ps 0110
> 1400 0ps 0111
> 1600 120ps 1000
> 1800 240ps 1001
> 2000 360ps 1010
> 2200 480ps 1011
> 2400 600ps 1100
> 2600 720ps 1101
> 2800 840ps 1110
> 3000 960ps 1111
>
> Documentation/devicetree/bindings/net/adi,adin.yaml
>
> adi,rx-internal-delay-ps:
> description: |
> RGMII RX Clock Delay used only when PHY operates in RGMII mode with
> internal delay (phy-mode is 'rgmii-id' or 'rgmii-rxid') in pico-seconds.
> enum: [ 1600, 1800, 2000, 2200, 2400 ]
> default: 2000
>
> adi,tx-internal-delay-ps:
> description: |
> RGMII TX Clock Delay used only when PHY operates in RGMII mode with
> internal delay (phy-mode is 'rgmii-id' or 'rgmii-txid') in pico-seconds.
> enum: [ 1600, 1800, 2000, 2200, 2400 ]
> default: 2000
>
> Documentation/devicetree/bindings/net/apm-xgene-enet.txt
>
> - tx-delay: Delay value for RGMII bridge TX clock.
> Valid values are between 0 to 7, that maps to
> 417, 717, 1020, 1321, 1611, 1913, 2215, 2514 ps
> Default value is 4, which corresponds to 1611 ps
> - rx-delay: Delay value for RGMII bridge RX clock.
> Valid values are between 0 to 7, that maps to
> 273, 589, 899, 1222, 1480, 1806, 2147, 2464 ps
> Default value is 2, which corresponds to 899 ps
>
> You could implement checking against a table of valid values, which is
> something you need for your PHY. You could even consider making it a
> 2D table, and return the register value, not the delay?
So provide a helper function that will just basically parse an array and
return the indexed value.
The outlier here is the AD device since the index to value is not 1-1
mapping. Not sure we need a 2D table like the AD driver.
I actually implemented this in the dp83869 a bit ago and have done this
in a few other non-PHY drivers.
I guess I can look at making it a utility function in the networking space.
Dan
>
> Andrew
next prev parent reply other threads:[~2020-05-20 20:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-20 12:18 [PATCH net-next v2 0/4] DP83869 Enhancements Dan Murphy
2020-05-20 12:18 ` [PATCH net-next v2 1/4] net: phy: dp83869: Update port-mirroring to read straps Dan Murphy
2020-05-20 12:18 ` [PATCH net-next v2 2/4] net: phy: dp83869: Set opmode from straps Dan Murphy
2020-05-20 15:49 ` Florian Fainelli
2020-05-20 12:18 ` [PATCH net-next v2 3/4] dt-bindings: net: Add RGMII internal delay for DP83869 Dan Murphy
2020-05-20 13:56 ` Andrew Lunn
2020-05-20 15:28 ` Dan Murphy
2020-05-20 15:30 ` Dan Murphy
2020-05-20 15:36 ` Andrew Lunn
2020-05-20 15:56 ` Dan Murphy
2020-05-20 16:03 ` Florian Fainelli
2020-05-20 16:43 ` Andrew Lunn
2020-05-20 17:20 ` Dan Murphy
2020-05-20 17:45 ` Florian Fainelli
2020-05-20 17:52 ` Dan Murphy
2020-05-20 19:27 ` Andrew Lunn
2020-05-20 20:02 ` Dan Murphy
2020-05-20 20:44 ` Andrew Lunn
2020-05-20 20:55 ` Dan Murphy [this message]
2020-05-20 12:18 ` [PATCH net-next v2 4/4] net: dp83869: Add RGMII internal delay configuration Dan Murphy
2020-05-22 12:25 [PATCH net-next v2 0/4] RGMII Internal delay common property Dan Murphy
2020-05-22 12:25 ` [PATCH net-next v2 3/4] dt-bindings: net: Add RGMII internal delay for DP83869 Dan Murphy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ecee51d5-a69e-4f7e-2a33-ae7aae63fec8@ti.com \
--to=dmurphy@ti.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.