• Hartley Sweeten's avatar
    ARM: 6636/1: ep93xx: default multiplexed gpio ports to gpio mode · fd015480
    Hartley Sweeten authored
    The EP93xx C and D GPIO ports are multiplexed with the Keypad Interface
    peripheral.  At power-up they default into non-GPIO mode with the Key
    Matrix controller enabled so these ports are unusable for GPIO.  Note
    that the Keypad Interface peripheral is only available in the EP9307,
    EP9312, and EP9315 processor variants.
    
    The keypad support will clear the DeviceConfig bits appropriately to
    enable the Keypad Interface when the driver is loaded.  And, when the
    driver is unloaded it will set the bits to return the ports to GPIO mode.
    
    To make these ports available for GPIO after power-up on all EP93xx
    processor variants, set the KEYS and GONK bits in the DeviceConfig
    register.
    
    Similarly, the E, G, and H ports are multiplexed with the IDE Interface
    peripheral.  At power-up these also default into non-GPIO mode.  Note
    that the IDE peripheral is only available in the EP9312 and EP9315
    processor variants.
    
    Since an IDE driver is not even available in mainline, set the EONIDE,
    GONIDE, and HONIDE bits in the DeviceConfig register so that these
    ports will be available for GPIO use after power-up.
    Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
    Acked-by: default avatarRyan Mallon <ryan@bluewatersys.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    fd015480
gpio.c 11.9 KB