On Tue, Jul 30, 2013 at 2:42 AM, Kim, Milo <Milo.Kim@xxxxxx> wrote: > This is one of LP3943 MFD driver. > LP3943 is configurable as a GPIO expander, up to 16 GPIOs. > > * Application note: how to configure LP3943 as a GPIO expander > http://www.ti.com/lit/an/snva287a/snva287a.pdf > > * Supported GPIO controller operations > request, free, direction_input, direction_output, get and set > > * GPIO direction register not supported > LP3943 doesn't have the GPIO direction register. It only provides input and > output status registers. > So, private data for the direction should be handled manually. > This variable is updated whenever the direction is changed and > used in 'get' operation. > > * Pin assignment > A driver data, 'pin_used' is checked when a GPIO is requested. > If the GPIO is already assigned, then returns as failure. > If the GPIO is available, 'pin_used' is set. > When the GPIO is not used anymore, then it is cleared. > It is defined as unsigned long type for atomic bit operation APIs, > but only LSB 16bits are used because LP3943 has 16 outputs. > > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> > Signed-off-by: Milo Kim <milo.kim@xxxxxx> > --- > * Patch v2 > Use bitops macros for bit manipulations. > Support device tree structure for the GPIO controller. > Add request() and free() for the pin assignment. This adresses all my concerns, nice driver. Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> I guess this will be merged through the MFD tree along with the MFD core patch? That needs to go in first anyway. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html