regmap: provide regmap_assign_bits()
authorBartosz Golaszewski <brgl@bgdev.pl>
Fri, 8 Nov 2024 14:07:37 +0000 (16:07 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 8 Nov 2024 15:39:31 +0000 (15:39 +0000)
Add another bits helper to regmap API: this one sets given bits if value
is true and clears them if it's false.

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patch.msgid.link/20241108-assign-bits-v1-1-382790562d99@ideasonboard.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/linux/regmap.h

index da07584..0d5b74f 100644 (file)
@@ -1335,6 +1335,15 @@ static inline int regmap_clear_bits(struct regmap *map,
        return regmap_update_bits_base(map, reg, bits, 0, NULL, false, false);
 }
 
+static inline int regmap_assign_bits(struct regmap *map, unsigned int reg,
+                                    unsigned int bits, bool value)
+{
+       if (value)
+               return regmap_set_bits(map, reg, bits);
+       else
+               return regmap_clear_bits(map, reg, bits);
+}
+
 int regmap_test_bits(struct regmap *map, unsigned int reg, unsigned int bits);
 
 /**
@@ -1803,6 +1812,13 @@ static inline int regmap_clear_bits(struct regmap *map,
        return -EINVAL;
 }
 
+static inline int regmap_assign_bits(struct regmap *map, unsigned int reg,
+                                    unsigned int bits, bool value)
+{
+       WARN_ONCE(1, "regmap API is disabled");
+       return -EINVAL;
+}
+
 static inline int regmap_test_bits(struct regmap *map,
                                   unsigned int reg, unsigned int bits)
 {