return line->info_flags & GPIOLINE_FLAG_OPEN_SOURCE;
}
-bool gpiod_line_needs_update(struct gpiod_line *line GPIOD_UNUSED)
-{
- return false;
-}
-
+ static int line_info_v2_to_info_flags(struct gpio_v2_line_info *info)
+ {
+ int iflags = 0;
+
+ if (info->flags & GPIO_V2_LINE_FLAG_USED)
+ iflags |= GPIOLINE_FLAG_KERNEL;
+
+ if (info->flags & GPIO_V2_LINE_FLAG_OPEN_DRAIN)
+ iflags |= GPIOLINE_FLAG_OPEN_DRAIN;
+ if (info->flags & GPIO_V2_LINE_FLAG_OPEN_SOURCE)
+ iflags |= GPIOLINE_FLAG_OPEN_SOURCE;
+
+ if (info->flags & GPIO_V2_LINE_FLAG_BIAS_DISABLED)
+ iflags |= GPIOLINE_FLAG_BIAS_DISABLE;
+ if (info->flags & GPIO_V2_LINE_FLAG_BIAS_PULL_UP)
+ iflags |= GPIOLINE_FLAG_BIAS_PULL_UP;
+ if (info->flags & GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN)
+ iflags |= GPIOLINE_FLAG_BIAS_PULL_DOWN;
+
+ return iflags;
+ }
+
int gpiod_line_update(struct gpiod_line *line)
{
- struct gpioline_info info;
+ struct gpio_v2_line_info info;
int rv;
memset(&info, 0, sizeof(info));