firmware/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-drivers_gpio_gpiolib-...

31 lines
980 B
Diff

diff -drupN a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
--- a/drivers/gpio/gpiolib-of.c 2018-08-06 17:23:04.000000000 +0300
+++ b/drivers/gpio/gpiolib-of.c 2022-06-12 05:28:14.000000000 +0300
@@ -126,6 +126,10 @@ struct gpio_desc *of_find_gpio(struct de
struct gpio_desc *desc;
unsigned int i;
+#ifdef CONFIG_ARCH_SUNXI
+ struct gpio_config gpio_flags;
+#endif
+
for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
if (con_id)
snprintf(prop_name, sizeof(prop_name), "%s-%s", con_id,
@@ -134,8 +138,15 @@ struct gpio_desc *of_find_gpio(struct de
snprintf(prop_name, sizeof(prop_name), "%s",
gpio_suffixes[i]);
+#ifndef CONFIG_ARCH_SUNXI
desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx,
&of_flags);
+#else
+ desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx,
+ (enum of_gpio_flags *)&gpio_flags);
+ of_flags = gpio_flags.data;
+#endif
+
if (!IS_ERR(desc) || (PTR_ERR(desc) != -ENOENT))
break;
}