From mboxrd@z Thu Jan 1 00:00:00 1970 From: Geert Uytterhoeven Subject: Re: [PATCH v4 2/9] pinctrl: Renesas RZ/A1 pin and gpio controller Date: Wed, 26 Apr 2017 14:21:34 +0200 Message-ID: References: <1491401247-7030-1-git-send-email-jacopo+renesas@jmondi.org> <1491401247-7030-3-git-send-email-jacopo+renesas@jmondi.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <1491401247-7030-3-git-send-email-jacopo+renesas@jmondi.org> Sender: linux-renesas-soc-owner@vger.kernel.org To: Jacopo Mondi Cc: Linus Walleij , Geert Uytterhoeven , Laurent Pinchart , Chris Brandt , Rob Herring , Mark Rutland , Russell King , Linux-Renesas , "linux-gpio@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-Id: linux-gpio@vger.kernel.org Hi Jacopo, On Wed, Apr 5, 2017 at 4:07 PM, Jacopo Mondi wrote: > Add combined gpio and pin controller driver for Renesas RZ/A1 > r7s72100 SoC. > > Signed-off-by: Jacopo Mondi > --- /dev/null > +++ b/drivers/pinctrl/pinctrl-rza1.c > +/* > + * Keep this up-to-date with pinconf-generic.h: it performs packing of > + * pin conf flags and argument during pinconf_generic_parse_dt_config(); > + * we simply discard pinconf argument here > + */ > +#define PIN_CONF_UNPACK(pinconf) ((pinconf) & 0xffUL) Perhaps this should be moved to pinconf-generic.h, to make sure it stays up-to-date? > +static inline int rza1_get_bit(struct rza1_port *port, unsigned int reg, I'd use "unsigned int" as the return type. It doesn't matter much as register values are 16-bit, but people might copy from this driver when writing their own. > + unsigned int bit) > +{ > + void __iomem *mem = RZA1_ADDR(port->base, reg, port->id); > + > + return ioread16(mem) & BIT(bit); > +} > +static inline int rza1_pin_get_direction(struct rza1_port *port, > + unsigned int pin) > +{ > + unsigned long irqflags; > + int input; > + > + spin_lock_irqsave(&port->lock, irqflags); > + input = rza1_get_bit(port, RZA1_PM_REG, pin); > + spin_unlock_irqrestore(&port->lock, irqflags); > + > + return input; return !!input; gpio_chip.get_direction() should return 0, 1, or a negative error value. > +} Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org 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