• Álvaro Fernández Rojas's avatar
    gpio: mmio: add DT support for memory-mapped GPIOs · e698613a
    Álvaro Fernández Rojas authored
    This patch adds support for defining memory-mapped GPIOs which
    are compatible with the existing gpio-mmio interface. The generic
    library provides support for many memory-mapped GPIO controllers
    that are found in various on-board FPGA and ASIC solutions that
    are used to control board's switches, LEDs, chip-selects,
    Ethernet/USB PHY power, etc.
    
    For setting GPIOs there are three configurations:
    	1. single input/output register resource (named "dat"),
    	2. set/clear pair (named "set" and "clr"),
    	3. single output register resource and single input resource
    	   ("set" and dat").
    
    The configuration is detected by which resources are present.
    For the single output register, this drives a 1 by setting a bit
    and a zero by clearing a bit.  For the set clr pair, this drives
    a 1 by setting a bit in the set register and clears it by setting
    a bit in the clear register.
    
    For setting the GPIO direction, there are three configurations:
    	a. simple bidirectional GPIOs that requires no configuration.
    	b. an output direction register (named "dirout")
    	   where a 1 bit indicates the GPIO is an output.
    	c. an input direction register (named "dirin")
    	   where a 1 bit indicates the GPIO is an input.
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarÁlvaro Fernández Rojas <noltari@gmail.com>
    Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
    Acked-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    e698613a
gpio-mmio.c 16.9 KB