break;
in_range = enum_in_range(enum_id, &gpioc->function);
- if (!in_range && range)
+ if (!in_range && range) {
in_range = enum_in_range(enum_id, range);
+ if (in_range && enum_id == range->force)
+ continue;
+ }
+
if (!in_range)
continue;
BUG();
else
value = read_write_reg(dr->reg, dr->reg_width,
- 1, bit, value, do_write);
+ 1, bit, !!value, do_write);
return value;
}