Commit dcf21919 authored by Tony Lindgren's avatar Tony Lindgren

ARM: dts: Fix GPMC timings for LAN9220

I've noticed occasional random oopsing on my gateway
machine since I upgraded it to use device tree based
booting. As this machine has worked reliably before
that for a few years, pretty much the only difference
was narrowed down to the GPMC timings. Turns out that
for legacy based booting we are using bootloader timings
for GPMC for smsc911x. With device tree we are passing
the timings in the .dts file, and the device tree
timings are not quite suitable for LAN9920.

Enabling DEBUG in gpmc.c I noticed that the device tree
configured timings are different from the the known
working bootloader timings. So let's fix the timings to
match the bootloader timings when looked at the gpmc
dmesg output with DEBUG enabled.

The changes were done by multiplying the bootloader
tick values by six to get the nanosecond value for
device tree. This is not generic from the device point
of view as the calculations should be based on the device
timings. Anyways, further improvments can be done based
on the timings documentation for LAN9220. But let's first
get things to a known good working state.

Note that we still need to change the timings also for
sb-t35 also as it has two LAN9220 instances on GPMC and
we can currently include the generic timings only once.

Also note that any boards that have LAN9221 instead of
LAN9220 should be updated to use omap-gpmc-smsc9221.dtsi
instead of omap-gpmc-smsc911x.dtsi. The LAN9221 timings
are different from LAN9220 timings.

Cc: Christoph Fritz <chf.fritz@googlemail.com>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Javier Martinez Canillas <javier@dowhile0.org>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent de9949a4
...@@ -24,11 +24,10 @@ ethernet@gpmc { ...@@ -24,11 +24,10 @@ ethernet@gpmc {
compatible = "smsc,lan9221", "smsc,lan9115"; compatible = "smsc,lan9221", "smsc,lan9115";
bank-width = <2>; bank-width = <2>;
gpmc,mux-add-data; gpmc,mux-add-data;
gpmc,cs-on-ns = <0>; gpmc,cs-on-ns = <1>;
gpmc,cs-rd-off-ns = <186>; gpmc,cs-rd-off-ns = <180>;
gpmc,cs-wr-off-ns = <186>; gpmc,cs-wr-off-ns = <180>;
gpmc,adv-on-ns = <12>; gpmc,adv-rd-off-ns = <18>;
gpmc,adv-rd-off-ns = <48>;
gpmc,adv-wr-off-ns = <48>; gpmc,adv-wr-off-ns = <48>;
gpmc,oe-on-ns = <54>; gpmc,oe-on-ns = <54>;
gpmc,oe-off-ns = <168>; gpmc,oe-off-ns = <168>;
...@@ -36,12 +35,10 @@ ethernet@gpmc { ...@@ -36,12 +35,10 @@ ethernet@gpmc {
gpmc,we-off-ns = <168>; gpmc,we-off-ns = <168>;
gpmc,rd-cycle-ns = <186>; gpmc,rd-cycle-ns = <186>;
gpmc,wr-cycle-ns = <186>; gpmc,wr-cycle-ns = <186>;
gpmc,access-ns = <114>; gpmc,access-ns = <144>;
gpmc,page-burst-access-ns = <6>; gpmc,page-burst-access-ns = <24>;
gpmc,bus-turnaround-ns = <12>; gpmc,bus-turnaround-ns = <90>;
gpmc,cycle2cycle-delay-ns = <18>; gpmc,cycle2cycle-delay-ns = <90>;
gpmc,wr-data-mux-bus-ns = <90>;
gpmc,wr-access-ns = <186>;
gpmc,cycle2cycle-samecsen; gpmc,cycle2cycle-samecsen;
gpmc,cycle2cycle-diffcsen; gpmc,cycle2cycle-diffcsen;
vddvario-supply = <&vddvario>; vddvario-supply = <&vddvario>;
......
...@@ -23,11 +23,10 @@ smsc2: ethernet@4,0 { ...@@ -23,11 +23,10 @@ smsc2: ethernet@4,0 {
reg = <4 0 0xff>; reg = <4 0 0xff>;
bank-width = <2>; bank-width = <2>;
gpmc,mux-add-data; gpmc,mux-add-data;
gpmc,cs-on-ns = <0>; gpmc,cs-on-ns = <1>;
gpmc,cs-rd-off-ns = <186>; gpmc,cs-rd-off-ns = <180>;
gpmc,cs-wr-off-ns = <186>; gpmc,cs-wr-off-ns = <180>;
gpmc,adv-on-ns = <12>; gpmc,adv-rd-off-ns = <18>;
gpmc,adv-rd-off-ns = <48>;
gpmc,adv-wr-off-ns = <48>; gpmc,adv-wr-off-ns = <48>;
gpmc,oe-on-ns = <54>; gpmc,oe-on-ns = <54>;
gpmc,oe-off-ns = <168>; gpmc,oe-off-ns = <168>;
...@@ -35,12 +34,10 @@ smsc2: ethernet@4,0 { ...@@ -35,12 +34,10 @@ smsc2: ethernet@4,0 {
gpmc,we-off-ns = <168>; gpmc,we-off-ns = <168>;
gpmc,rd-cycle-ns = <186>; gpmc,rd-cycle-ns = <186>;
gpmc,wr-cycle-ns = <186>; gpmc,wr-cycle-ns = <186>;
gpmc,access-ns = <114>; gpmc,access-ns = <144>;
gpmc,page-burst-access-ns = <6>; gpmc,page-burst-access-ns = <24>;
gpmc,bus-turnaround-ns = <12>; gpmc,bus-turnaround-ns = <90>;
gpmc,cycle2cycle-delay-ns = <18>; gpmc,cycle2cycle-delay-ns = <90>;
gpmc,wr-data-mux-bus-ns = <90>;
gpmc,wr-access-ns = <186>;
gpmc,cycle2cycle-samecsen; gpmc,cycle2cycle-samecsen;
gpmc,cycle2cycle-diffcsen; gpmc,cycle2cycle-diffcsen;
vddvario-supply = <&vddvario>; vddvario-supply = <&vddvario>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment