On Wed, Jan 18, 2017 at 3:06 PM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > Hi Linus, > > On Wed, Jan 18, 2017 at 2:58 PM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: >>> + gpio_chip->request = rz_gpio_request; >>> + gpio_chip->free = rz_gpio_free; >>> + gpio_chip->label = dev_name(&pdev->dev); >>> + gpio_chip->parent = &pdev->dev; >>> + gpio_chip->owner = THIS_MODULE; >>> + gpio_chip->base = -1; >>> + gpio_chip->ngpio = ret == 0 ? args.args[2] : RZ_GPIOS_PER_PORT; >> >> bgpio_init() will have already set this up to 16 (RZ_GPIOS_PER_PORT) >> as we pass width 2 bytes. > > Note that some banks have less than 16 GPIOs, cfr. the last value of the > gpio-ranges tuple being less than 16. Aha OK then it is fine to override this default value calculate from the register size. But for that case we should use the standard DT property ngpios described in Documentation/devicetree/bindings/gpio/gpio.txt It is for exactly this purpose. Yours, Linus Walleij