diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2023-01-10 16:08:03 +0200 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2023-02-22 21:06:30 +0100 |
commit | 93219a4fb8bdf279f749b5eef40bef1bbe805fc3 (patch) | |
tree | bf816f01e5b9f74ea01e6fe18272cc5ad2235286 | |
parent | f525b210e9d4dcefb88594d50e426068e62840f4 (diff) |
rtc: isl12022: Explicitly use __le16 type for ISL12022_REG_TEMP_L
We are reading 10-bit value in a 16-bit register in LE format.
Make this explicit by using __le16 type for it and corresponding
conversion function.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Link: https://lore.kernel.org/r/20230110140806.87432-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r-- | drivers/rtc/rtc-isl12022.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/rtc/rtc-isl12022.c b/drivers/rtc/rtc-isl12022.c index 44058fa27277..bf1aa6f6560d 100644 --- a/drivers/rtc/rtc-isl12022.c +++ b/drivers/rtc/rtc-isl12022.c @@ -19,6 +19,8 @@ #include <linux/regmap.h> #include <linux/hwmon.h> +#include <asm/byteorder.h> + /* ISL register offsets */ #define ISL12022_REG_SC 0x00 #define ISL12022_REG_MN 0x01 @@ -63,17 +65,16 @@ static umode_t isl12022_hwmon_is_visible(const void *data, static int isl12022_hwmon_read_temp(struct device *dev, long *mC) { struct regmap *regmap = dev_get_drvdata(dev); - u8 temp_buf[2]; int temp, ret; + __le16 buf; - ret = regmap_bulk_read(regmap, ISL12022_REG_TEMP_L, - temp_buf, sizeof(temp_buf)); + ret = regmap_bulk_read(regmap, ISL12022_REG_TEMP_L, &buf, sizeof(buf)); if (ret) return ret; /* * Temperature is represented as a 10-bit number, unit half-Kelvins. */ - temp = (temp_buf[1] << 8) | temp_buf[0]; + temp = le16_to_cpu(buf); temp *= 500; temp -= 273000; |