@@ -71,6 +71,24 @@ struct reg_sequence {
unsigned int delay_us;
};
+#define regmap_set_bits(map, reg, bits) \
+ regmap_update_bits_base(map, reg, bits, bits, NULL, false, false)
+#define regmap_clear_bits(map, reg, bits) \
+ regmap_update_bits_base(map, reg, bits, 0, NULL, false, false)
+/*
+ * Returns -1 if the underlying regmap_read() fails, 0 if at least one of the
+ * tested bits is not set and 1 if all tested bits are set.
+ */
+#define regmap_test_bits(map, reg, bits) \
+({ \
+ unsigned int __val, __ret, __bits; \
+ __bits = (bits); \
+ __ret = regmap_read(map, reg, &__val); \
+ if (__ret == 0) \
+ __ret = (__val & __bits) == __bits ? 1 : 0; \
+ __ret; \
+})
+
#define regmap_update_bits(map, reg, mask, val) \
regmap_update_bits_base(map, reg, mask, val, NULL, false, false)
#define regmap_update_bits_async(map, reg, mask, val)\