+int dm_gpio_get_dir_flags(struct gpio_desc *desc, ulong *flags)
+{
+ int ret;
+ ulong dir_flags;
+
+ ret = check_reserved(desc, "get_dir_flags");
+ if (ret)
+ return ret;
+
+ dir_flags = desc->flags;
+ /* only GPIOD_IS_OUT_ACTIVE is provided by uclass */
+ dir_flags &= ~GPIOD_IS_OUT_ACTIVE;
+ if ((desc->flags & GPIOD_IS_OUT) && _gpio_get_value(desc))
+ dir_flags |= GPIOD_IS_OUT_ACTIVE;
+
+ *flags = dir_flags;
+
+ return 0;
+}
+