On Fri, 17 Apr 2015 16:53:31 +0200 Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Friday 17 April 2015 16:24:26 Alban Bedel wrote: > > Replace the simple GPIO chip registration by a platform driver > > and make ath79_gpio_init() just register the device. > > > > Signed-off-by: Alban Bedel <albeu@xxxxxxx> > > --- > > arch/mips/ath79/dev-common.c | 13 ++++++++ > > arch/mips/ath79/gpio.c | 73 > > +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 81 > > insertions(+), 5 deletions(-) > > Could you move the driver to drivers/gpio/ now? Sure, I'll add a patch to move it there. > > +void __init ath79_gpio_init(void) > > +{ > > + struct resource res; > > + > > + memset(&res, 0, sizeof(res)); > > + > > + res.flags = IORESOURCE_MEM; > > + res.start = AR71XX_GPIO_BASE; > > + res.end = res.start + AR71XX_GPIO_SIZE - 1; > > + > > + platform_device_register_simple("ath79-gpio", -1, &res, 1); > > +} > > Your code looks correct, but could be shortened to > > struct resource mem = DEFINE_RES_MEM(AR71XX_GPIO_BASE, > AR71XX_GPIO_SIZE); I'll do that. > > > > -void __init ath79_gpio_init(void) > > +static const struct of_device_id ath79_gpio_of_match[] = { > > + { > > + .compatible = "qca,ar7100-gpio", > > + .data = (void *)AR71XX_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,ar7240-gpio", > > + .data = (void *)AR7240_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,ar7241-gpio", > > + .data = (void *)AR7241_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,ar9130-gpio", > > + .data = (void *)AR913X_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,ar9330-gpio", > > + .data = (void *)AR933X_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,ar9340-gpio", > > + .data = (void *)AR934X_GPIO_COUNT, > > + }, > > + { > > + .compatible = "qca,qca9550-gpio", > > + .data = (void *)QCA955X_GPIO_COUNT, > > + }, > > + {}, > > +}; > > How about putting the number into an 'ngpios' property like some other > bindings do? I'll do that, it would make things simpler. Alban