Merge tag 'pinctrl-v3.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pinctrl fix from Linus Walleij: "A single last pinctrl fix for the v3.15 series: the vt8500 driver was failing to update the output value when the combined set direction output and set value was executed" * tag 'pinctrl-v3.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: vt8500: Ensure value reg is updated when setting direction
This commit is contained in:
@@ -523,17 +523,6 @@ static int wmt_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
|
||||
return GPIOF_DIR_IN;
|
||||
}
|
||||
|
||||
static int wmt_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
return pinctrl_gpio_direction_input(chip->base + offset);
|
||||
}
|
||||
|
||||
static int wmt_gpio_direction_output(struct gpio_chip *chip, unsigned offset,
|
||||
int value)
|
||||
{
|
||||
return pinctrl_gpio_direction_output(chip->base + offset);
|
||||
}
|
||||
|
||||
static int wmt_gpio_get_value(struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
struct wmt_pinctrl_data *data = dev_get_drvdata(chip->dev);
|
||||
@@ -568,6 +557,18 @@ static void wmt_gpio_set_value(struct gpio_chip *chip, unsigned offset,
|
||||
wmt_clearbits(data, reg_data_out, BIT(bit));
|
||||
}
|
||||
|
||||
static int wmt_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
return pinctrl_gpio_direction_input(chip->base + offset);
|
||||
}
|
||||
|
||||
static int wmt_gpio_direction_output(struct gpio_chip *chip, unsigned offset,
|
||||
int value)
|
||||
{
|
||||
wmt_gpio_set_value(chip, offset, value);
|
||||
return pinctrl_gpio_direction_output(chip->base + offset);
|
||||
}
|
||||
|
||||
static struct gpio_chip wmt_gpio_chip = {
|
||||
.label = "gpio-wmt",
|
||||
.owner = THIS_MODULE,
|
||||
|
Reference in New Issue
Block a user