• Rishi Gupta's avatar
    HID: mcp2221: add GPIO functionality support · 328de1c5
    Rishi Gupta authored
    MCP2221 has 4 pins that can be used as GPIO or configured
    for alternate functionality such as clock generation and
    IRQ detection. This patch adds support for GPIO functionality.
    
    To set direction of a pin or to toggle its state after it
    has been configured as GPIO, driver sends command to mcp2221
    and parses response received from mcp2221. Based on this
    response either 0 or appropriate error code is returned to
    GPIO framework.
    
    To get the direction or current state of a pin, driver
    sends command and read response from the device. Based on
    the response received from device direction or value
    is sent to the GPIO framework.
    
    Command from driver to mcp2221 device are output report.
    Response received from mcp2221 is input report.
    
    Datasheet (page 45-48) contains details about how to decode
    the response received from device:
    http://ww1.microchip.com/downloads/en/DeviceDoc/20005565B.pdfSigned-off-by: default avatarRishi Gupta <gupt21@gmail.com>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    328de1c5
hid-mcp2221.c 20.1 KB