Re: [Linux-fbdev-devel] [RFC 2.6.27 1/1] gpiolib: add support for batch set of pins
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2008-11-26 12:09:19
Also in:
lkml
On Wed, 26 Nov 2008, Jaya Kumar wrote:
On Wed, Nov 26, 2008 at 5:08 AM, Geert Uytterhoeven [off-list ref] wrote:quoted
On Wed, 26 Nov 2008, Jaya Kumar wrote:quoted
On Wed, Nov 26, 2008 at 4:09 AM, Paulius Zaleckas [off-list ref] wrote:quoted
Jaya Kumar wrote:quoted
* @to_irq: optional hook supporting non-static gpio_to_irq() mappings; * implementation may not sleep * @dbg_show: optional routine to show contents in debugfs; default code@@ -84,6 +86,9 @@ struct gpio_chip { unsigned offset, int value); void (*set)(struct gpio_chip *chip, unsigned offset, int value); + void (*set_bus)(struct gpio_chip *chip, + unsigned offset, int values,I think values should be unsignedOkay, can do but it is unusual no? since set uses int value, i figured set_bus should be similar right?->set() sets one pin, right? So it's either 0 or 1. ->set_bus() sets multiple pins. With `int', it will fail for bit 31, as that's the sign bit.I'm not sure I understood this. I imagine the usage will be like int values = 0x8000_0000; set_bus(..., start_pin, values); write_32(register, values); // will still work to set bit 31
Tehcnically, it will work. But it's more confusing if it's int.
(values >> 31) == 1;
However, be careful with shifts, as right shifts on signed values will duplicate te sign bit.
quoted
Perhaps you even want u32, to make it clear what's the maximum number of pins you can set in one shot?Yes, I agree, I will change to use u32 as it is then explicit.
OK. Thx!
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