Hi Linus, On jeu., mars 23 2017, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: >>>> + ret = gpiochip_add_pin_range(&info->gpio_chip, dev_name(dev), 0, >>>> + pinbase, info->data->nr_pins); >>>> + if (ret) >>>> + return ret; >>> >>> Why do you do this? >>> >>> Why not just put the ranges into the device tree? We already support >>> this in the gpiolib core and it is helpful. >>> >>> See Documentation/devicetree/bindings/gpio/gpio.txt >>> and other DTS files for gpio-ranges. >> >> Following your review, I tried to use it but it didn't work for >> me. When the second pin controller was probed then there was collision >> for the gpio number. I tried several combination without any luck. > > That sounds like a bug. Are you using dynamic GPIO number > assignments? I managed to use it, the issue was that I register the gpio before the pinctrl. The call to gpiochip_add_pin_range() was done before both registration in my initial call so it was not a problem. When I switched to the gpio-ranges, this call was done from the gpiochip_add_data(), and in this case it has tt be called after devm_pinctrl_register(). So I am about sending a new version using gpio-ranges. Thanks, Gregory -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html