• Tony Lindgren's avatar
    ARM: dts: Fix GPMC timings for LAN9220 · dcf21919
    Tony Lindgren authored
    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>
    dcf21919
omap-gpmc-smsc911x.dtsi 1.12 KB