gpio: stm32f7: Fix gpio bank hole management
authorPatrice Chotard <patrice.chotard@st.com>
Fri, 4 Jan 2019 09:55:05 +0000 (10:55 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 9 Jan 2019 12:13:32 +0000 (07:13 -0500)
In case "gpio-ranges" property is not present in device tree,
use default value for gpio_count and gpio_range.
This fixes an issue on stm32 F7 and H7 boards where "pinmux status -a"
command didn't return any pin status due to the fact that both stm32 F7
and H7 board DT doesn't use the gpio-ranges property.

Fixes: dbf928dd2634a6("gpio: stm32f7: Add gpio bank holes management")

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
drivers/gpio/stm32f7_gpio.c

index f160b4e68957fa36e3bfee629e8f086a30601828..dbaa80cf8cce0a6322830ca47e52ee50c3096b42 100644 (file)
@@ -171,6 +171,11 @@ static int gpio_stm32_probe(struct udevice *dev)
        ret = dev_read_phandle_with_args(dev, "gpio-ranges",
                                         NULL, 3, i, &args);
 
+       if (ret == -ENOENT) {
+               uc_priv->gpio_count = STM32_GPIOS_PER_BANK;
+               priv->gpio_range = GENMASK(STM32_GPIOS_PER_BANK - 1, 0);
+       }
+
        while (ret != -ENOENT) {
                priv->gpio_range |= GENMASK(args.args[2] + args.args[0] - 1,
                                    args.args[0]);