Hi Linus, On Thu, Jan 19, 2017 at 10:27 AM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > On Wed, Jan 18, 2017 at 3:06 PM, Geert Uytterhoeven > <geert@xxxxxxxxxxxxxx> wrote: >> 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. IC. Note that gpio-rcar uses the same method, switching to "ngpios" would break backwards compatibility. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds