Skip to content

Commit 5556244

Browse files
tmlindbroonie
authored andcommitted
regmap: Add missing little endian functions
This with the longer read and write masks allow supporting more exotic devices. For example a little endian SPI device: static const struct regmap_config foo_regmap_config = { .reg_bits = 16, .reg_stride = 4, .val_bits = 16, .write_flag_mask = 0x8000, .reg_format_endian = REGMAP_ENDIAN_LITTLE, .val_format_endian = REGMAP_ENDIAN_LITTLE, ... }; Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent f50e38c commit 5556244

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

drivers/base/regmap/regmap.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,9 @@ struct regmap *__regmap_init(struct device *dev,
749749
case REGMAP_ENDIAN_BIG:
750750
map->format.format_reg = regmap_format_16_be;
751751
break;
752+
case REGMAP_ENDIAN_LITTLE:
753+
map->format.format_reg = regmap_format_16_le;
754+
break;
752755
case REGMAP_ENDIAN_NATIVE:
753756
map->format.format_reg = regmap_format_16_native;
754757
break;
@@ -768,6 +771,9 @@ struct regmap *__regmap_init(struct device *dev,
768771
case REGMAP_ENDIAN_BIG:
769772
map->format.format_reg = regmap_format_32_be;
770773
break;
774+
case REGMAP_ENDIAN_LITTLE:
775+
map->format.format_reg = regmap_format_32_le;
776+
break;
771777
case REGMAP_ENDIAN_NATIVE:
772778
map->format.format_reg = regmap_format_32_native;
773779
break;
@@ -782,6 +788,9 @@ struct regmap *__regmap_init(struct device *dev,
782788
case REGMAP_ENDIAN_BIG:
783789
map->format.format_reg = regmap_format_64_be;
784790
break;
791+
case REGMAP_ENDIAN_LITTLE:
792+
map->format.format_reg = regmap_format_64_le;
793+
break;
785794
case REGMAP_ENDIAN_NATIVE:
786795
map->format.format_reg = regmap_format_64_native;
787796
break;

0 commit comments

Comments
 (0)