Skip to content
Snippets Groups Projects
  • Eugeniy Paltsev's avatar
    fe3eb7a8
    GPIO: CREG: improve flexibility of hsdk-creg-gpio driver · fe3eb7a8
    Eugeniy Paltsev authored
    
    CREG GPIO is a driver for weird soc-specific output ports, which are
    controlled by some fields in memory mapped register.
    
    Example:
    
    31                 9        7        5           0   < bit number
    |                  |        |        |           |
    [     not used     | gpio-1 | gpio-0 | <-shift-> ]   < 32 bit register
                           ^        ^
                           |        |
                    write 0x2 == set output to "1" (activate)
                    write 0x3 == set output to "0" (deactivate)
    
    As of tooday we only support fixed (hardcoded) bit per gpio line,
    activate / deactivatei and shift values. Fix that by read them from
    device tree to be able to use this driver for other boards.
    
    Remove "hsdk" prefix from compatible string as this driver can be
    used with different boards like HSDK, AXS101, AXS103, etc.
    
    Signed-off-by: default avatarEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    fe3eb7a8
    History
    GPIO: CREG: improve flexibility of hsdk-creg-gpio driver
    Eugeniy Paltsev authored
    
    CREG GPIO is a driver for weird soc-specific output ports, which are
    controlled by some fields in memory mapped register.
    
    Example:
    
    31                 9        7        5           0   < bit number
    |                  |        |        |           |
    [     not used     | gpio-1 | gpio-0 | <-shift-> ]   < 32 bit register
                           ^        ^
                           |        |
                    write 0x2 == set output to "1" (activate)
                    write 0x3 == set output to "0" (deactivate)
    
    As of tooday we only support fixed (hardcoded) bit per gpio line,
    activate / deactivatei and shift values. Fix that by read them from
    device tree to be able to use this driver for other boards.
    
    Remove "hsdk" prefix from compatible string as this driver can be
    used with different boards like HSDK, AXS101, AXS103, etc.
    
    Signed-off-by: default avatarEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>