diff mbox series

[2/2] arm64: dts: allwinner: Olimex A64-OLinuXino: fix ethernet

Message ID 20180919141938.18791-1-rodrigo@tjader.xyz
State New
Headers show
Series [1/2] arm64: dts: allwinner: Olimex A64-OLinuXino: enable eMMC. | expand

Commit Message

Rodrigo Exterckötter Tjäder Sept. 19, 2018, 2:19 p.m. UTC
Without "allwinner,tx-delay-ps = <600>;" on the DTP it can receive packets
but not send.

Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>
---
 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts | 1 +
 1 file changed, 1 insertion(+)

Comments

Maxime Ripard Sept. 21, 2018, 2:29 p.m. UTC | #1
On Wed, Sep 19, 2018 at 11:19:36AM -0300, Rodrigo Exterckötter Tjäder wrote:
> Without "allwinner,tx-delay-ps = <600>;" on the DTP it can receive packets
> but not send.
> 
> Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>

Again, that commit log would be nice if it was a bit more
explicit. What is a DTP? How did you come up with that value? What is
the value used by Allwinner/Olimex, and why did you use another one if
you did?

Thanks!
Maxime
Rodrigo Exterckötter Tjäder Sept. 21, 2018, 3:25 p.m. UTC | #2
On Fri, Sep 21, 2018 at 11:30 AM Maxime Ripard
<maxime.ripard@bootlin.com> wrote:
> On Wed, Sep 19, 2018 at 11:19:36AM -0300, Rodrigo Exterckötter Tjäder wrote:
> > Without "allwinner,tx-delay-ps = <600>;" on the DTP it can receive packets
> > but not send.
> >
> > Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>
>
> Again, that commit log would be nice if it was a bit more
> explicit. What is a DTP? How did you come up with that value? What is
> the value used by Allwinner/Olimex, and why did you use another one if
> you did?

Thanks for the feedback.

DTP is a typo, it should have been DT for "device tree".

Olimex's provided device tree uses a different driver for ethernet,
but it has a property named "tx-delay" with value 6 and the range of
the property is 0-7. On dwmac-sun8i's bindings documentation it says
allwinner,tx-delay-ps has a range of 0-700 and must be a multiple of
100, so I tried 600 and it works.

I'm not sure how much of that I should include in the commit log,
perhaps something like this:

---
arm64: dts: allwinner: OLinuXino: PHY TX clock delay

The PHY requres a delay on the TX clock, otherwise it is not able to send
any packets on the interface.

Olimex's device tree uses 6 in a range of 0-7, dwmac-sun8i requires a
multiple of 100 in the range 0-700.


Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>
Maxime Ripard Sept. 26, 2018, 9:45 a.m. UTC | #3
Hi!

On Fri, Sep 21, 2018 at 12:25:53PM -0300, Rodrigo Exterckötter Tjäder wrote:
> On Fri, Sep 21, 2018 at 11:30 AM Maxime Ripard
> <maxime.ripard@bootlin.com> wrote:
> > On Wed, Sep 19, 2018 at 11:19:36AM -0300, Rodrigo Exterckötter Tjäder wrote:
> > > Without "allwinner,tx-delay-ps = <600>;" on the DTP it can receive packets
> > > but not send.
> > >
> > > Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>
> >
> > Again, that commit log would be nice if it was a bit more
> > explicit. What is a DTP? How did you come up with that value? What is
> > the value used by Allwinner/Olimex, and why did you use another one if
> > you did?
> 
> Thanks for the feedback.
> 
> DTP is a typo, it should have been DT for "device tree".
> 
> Olimex's provided device tree uses a different driver for ethernet,
> but it has a property named "tx-delay" with value 6 and the range of
> the property is 0-7. On dwmac-sun8i's bindings documentation it says
> allwinner,tx-delay-ps has a range of 0-700 and must be a multiple of
> 100, so I tried 600 and it works.
>
> I'm not sure how much of that I should include in the commit log,
> perhaps something like this:
> 
> ---
> arm64: dts: allwinner: OLinuXino: PHY TX clock delay
> 
> The PHY requres a delay on the TX clock, otherwise it is not able to send
> any packets on the interface.
> 
> Olimex's device tree uses 6 in a range of 0-7, dwmac-sun8i requires a
> multiple of 100 in the range 0-700.
> 
> Signed-off-by: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>

There's no need to be so specific though :)

Something like that would work:

arm64: dts: allwinner: a64-olinuxino: set the PHY TX delay

The PHY found on the A64-Olinuxino requires a TX delay in order to
operate properly. Olimex uses a 600ps second delay in their BSP, and
that has been found to work, so let's use that value in the current
DT.

Maxime
Rodrigo Exterckötter Tjäder Sept. 26, 2018, 3:14 p.m. UTC | #4
On Wed, Sep 26, 2018 at 6:46 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> There's no need to be so specific though :)
>
> Something like that would work:
>
> arm64: dts: allwinner: a64-olinuxino: set the PHY TX delay
>
> The PHY found on the A64-Olinuxino requires a TX delay in order to
> operate properly. Olimex uses a 600ps second delay in their BSP, and
> that has been found to work, so let's use that value in the current
> DT.

Should I go ahead and send a v2 with that commit message then?
Maxime Ripard Sept. 26, 2018, 5:05 p.m. UTC | #5
On Wed, Sep 26, 2018 at 12:14:15PM -0300, Rodrigo Exterckötter Tjäder wrote:
> On Wed, Sep 26, 2018 at 6:46 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > There's no need to be so specific though :)
> >
> > Something like that would work:
> >
> > arm64: dts: allwinner: a64-olinuxino: set the PHY TX delay
> >
> > The PHY found on the A64-Olinuxino requires a TX delay in order to
> > operate properly. Olimex uses a 600ps second delay in their BSP, and
> > that has been found to work, so let's use that value in the current
> > DT.
> 
> Should I go ahead and send a v2 with that commit message then?

Yep, thanks!

Maxime
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
index 5245de3a1f35..75a435b9509b 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
@@ -90,6 +90,7 @@ 
 	phy-mode = "rgmii";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_dcdc1>;
+	allwinner,tx-delay-ps = <600>;
 	status = "okay";
 };