[PATCH v2 2/2] gpio: realtek-otto: add pinctrl support
| Newsgroups | org.kernel.vger.linux-gpio,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <060486bd7671ce058b96378c7b02316ebbe6d92c.1787130560.git.misha.zavertkin@mail.ru> |
RTL9607C relies on pinctrl to mux SoC pins. Use pinctrl to request pins for GPIO Signed-off-by: Michael Zavertkin <[email protected]> Reviewed-by: Linus Walleij <[email protected]> --- drivers/gpio/gpio-realtek-otto.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-realtek-otto.c b/drivers/gpio/gpio-realtek-otto.c index 4a606bad5848..86948da8adec 100644 --- a/drivers/gpio/gpio-realtek-otto.c +++ b/drivers/gpio/gpio-realtek-otto.c @@ -97,6 +97,11 @@ enum realtek_gpio_flags { * range, where the per-cpu enable masks are located. */ GPIO_INTERRUPTS_PER_CPU = BIT(2), + /* + * Request GPIOs from pinctrl using gpiochip_generic_request() + * and gpiochip_generic_free(). + */ + GPIO_PINCTRL = BIT(3), }; static struct realtek_gpio_ctrl *irq_data_to_ctrl(struct irq_data *data) @@ -354,7 +359,7 @@ static const struct of_device_id realtek_gpio_of_match[] = { }, { .compatible = "realtek,rtl9607-gpio", - .data = (void *)GPIO_PORTS_REVERSED, + .data = (void *)(GPIO_PORTS_REVERSED | GPIO_PINCTRL), }, {} }; @@ -405,6 +410,9 @@ static int realtek_gpio_probe(struct platform_device *pdev) ctrl->line_imr_pos = realtek_gpio_line_imr_pos_swapped; } + if (dev_flags & GPIO_PINCTRL) + gen_gc_flags |= GPIO_GENERIC_PINCTRL_BACKEND; + config = (struct gpio_generic_chip_config) { .dev = dev, .sz = 4, -- 2.54.0