@@ -98,6 +98,14 @@ static int stmpe_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
return stmpe_gpio->irq_base + offset;
}
+static int stmpe_gpio_request(struct gpio_chip *chip, unsigned offset)
+{
+ struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip);
+ struct stmpe *stmpe = stmpe_gpio->stmpe;
+
+ return stmpe_set_altfunc(stmpe, 1 << offset, STMPE_BLOCK_GPIO);
+}
+
static struct gpio_chip template_chip = {
.label = "stmpe",
.owner = THIS_MODULE,
@@ -106,6 +114,7 @@ static struct gpio_chip template_chip = {
.direction_output = stmpe_gpio_direction_output,
.set = stmpe_gpio_set,
.to_irq = stmpe_gpio_to_irq,
+ .request = stmpe_gpio_request,
.can_sleep = 1,
};