gpiolib: Pass array info to get/set array functions
[linux-2.6-microblaze.git] / drivers / gpio / gpiolib.h
index a7e49fe..b65ca89 100644 (file)
@@ -183,15 +183,26 @@ static inline bool acpi_can_fallback_to_crs(struct acpi_device *adev,
 }
 #endif
 
+struct gpio_array {
+       struct gpio_desc        **desc;
+       unsigned int            size;
+       struct gpio_chip        *chip;
+       unsigned long           *get_mask;
+       unsigned long           *set_mask;
+       unsigned long           invert_mask[];
+};
+
 struct gpio_desc *gpiochip_get_desc(struct gpio_chip *chip, u16 hwnum);
 int gpiod_get_array_value_complex(bool raw, bool can_sleep,
                                  unsigned int array_size,
                                  struct gpio_desc **desc_array,
-                                 int *value_array);
+                                 struct gpio_array *array_info,
+                                 unsigned long *value_bitmap);
 int gpiod_set_array_value_complex(bool raw, bool can_sleep,
                                   unsigned int array_size,
                                   struct gpio_desc **desc_array,
-                                  int *value_array);
+                                  struct gpio_array *array_info,
+                                  unsigned long *value_bitmap);
 
 /* This is just passed between gpiolib and devres */
 struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,