Re: [PATCH v2 2/4] gpio: add LP3943 I2C GPIO expander driver

From: Linus Walleij
Date: Wed Aug 07 2013 - 14:49:29 EST

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
> * 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 <>
> ---
> * 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.

Linus Walleij
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at