{
        struct pinctrl_dev *pctldev;
        struct pinctrl_gpio_range *range = NULL;
-       struct gpio_chip *chip = gpio_to_chip(gpio);
+       /*
+        * FIXME: "gpio" here is a number in the global GPIO numberspace.
+        * get rid of this from the ranges eventually and get the GPIO
+        * descriptor from the gpio_chip.
+        */
+       struct gpio_chip *chip = gpiod_to_chip(gpio_to_desc(gpio));
 
        if (WARN(!chip, "no gpio_chip for gpio%i?", gpio))
                return false;
                        }
                }
                if (gpio_num >= 0)
-                       chip = gpio_to_chip(gpio_num);
+                       /*
+                        * FIXME: gpio_num comes from the global GPIO numberspace.
+                        * we need to get rid of the range->base eventually and
+                        * get the descriptor directly from the gpio_chip.
+                        */
+                       chip = gpiod_to_chip(gpio_to_desc(gpio_num));
                else
                        chip = NULL;
                if (chip)
 
 struct device_node;
 struct gpio_desc;
 
-/* caller holds gpio_lock *OR* gpio is marked as requested */
-static inline struct gpio_chip *gpio_to_chip(unsigned gpio)
-{
-       return gpiod_to_chip(gpio_to_desc(gpio));
-}
-
 /* Always use the library code for GPIO management calls,
  * or when sleeping may be involved.
  */