• David Brownell's avatar
    davinci: gpio bugfixes · 474dad54
    David Brownell authored
    Update the DaVinci GPIO code to work better on non-dm6446 parts,
    notably the dm355:
    
     - Only handle the number of GPIOs the chip actually has.  So
       for example on dm6467, GPIO-42 is the last GPIO, and trying
       to use GPIO-43 now fails cleanly; or GPIO-72 on dm6446.
    
     - Enable GPIO interrupts on each 16-bit GPIO-irq bank ...
       previously, only the first five were enabled, so GPIO-80
       and above (on dm355) wouldn't trigger IRQs.
    
     - Use the right IRQ for each GPIO bank.  The wrong values were
       used for dm355 chips, so GPIO IRQs got routed incorrectly.
    
     - Handle up to four pairs of 16-bit GPIO banks ... previously
       only three were handled, so accessing GPIO-96 and up (e.g. on
       dm355) would oops.
    
     - Update several comments that were dm6446-specific.
    
    Verified by receiving GPIO-1 (dm9000) and GPIO-5 (msp430) IRQs
    on the DM355 EVM.
    
    One thing this doesn't do is handle the way some of the GPIO
    numbers on dm6467 are reserved but aren't valid as GPIOs.  Some
    bitmap logic could fix that if needed.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
    474dad54
gpio.c 8.5 KB