Thread (43 messages) 43 messages, 9 authors, 2009-01-10

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 unsigned
Okay, 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help