On Fri, Apr 26, 2024 at 10:07:20AM +0800, Kent Gibson wrote: > On Mon, Apr 22, 2024 at 06:49:05PM +0200, Gilles BULOZ wrote: > > On Mon, Apr 22, 2024 at 3:55 PM Bartosz Golaszewski wrote : > > > On Mon, Apr 22, 2024 at 2:44 PM Gilles BULOZ <gilles.buloz@xxxxxxxxxxx> wrote: > > >> > > Note that the mask in gc->get_multiple() is unsigned long*, so it is a > pointer to an array of unsigned long. Its width is not limited by > unsigned long, but by the bits parameter. In your case the mask you pass > should contain multiple unsigned longs to achieve 112 bits. > Refer to gpiod_get_array_value_complex() for an example of building bitmap > masks to pass to gc->get_multiple(), in that case via > gpio_chip_get_multiple(). > Bah, what was I saying here - both the mask AND bits parameters of get_multiple()/set_multiple() are bitmaps of width gc->ngpio, where the mask identifies the pins to get/set and bits contains the values. My bad - must've been before the coffee soaked in. Cheers, Kent.