summaryrefslogtreecommitdiff
path: root/drivers/thermal/qcom/tsens-8996.c
diff options
context:
space:
mode:
authorAmit Kucheria <amit.kucheria@linaro.org>2018-07-18 09:43:09 +0300
committerEduardo Valentin <edubezval@gmail.com>2018-07-28 01:02:37 +0300
commit5b1283984fa39933e094d237387ad8fd39527fc1 (patch)
tree3b31d82ac01f3dc19762318878caa8aa78008263 /drivers/thermal/qcom/tsens-8996.c
parent4ce6dcfd0d38169d9067c768fcce8e0d49f60fac (diff)
downloadlinux-5b1283984fa39933e094d237387ad8fd39527fc1.tar.xz
thermal: tsens: Add support to split up register address space into two
There are two banks of registers for v2 TSENS IPs: SROT and TM. On older SoCs these were contiguous, leading to DTs mapping them as one register address space of size 0x2000. In newer SoCs, these two banks are not contiguous anymore. Add logic to init_common() to differentiate between old and new DTs and adjust associated offsets for the TM register bank so that the old DTs will continue to function correctly. Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Tested-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Diffstat (limited to 'drivers/thermal/qcom/tsens-8996.c')
-rw-r--r--drivers/thermal/qcom/tsens-8996.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/thermal/qcom/tsens-8996.c b/drivers/thermal/qcom/tsens-8996.c
index e1f77818d8fa..3e60cecd2c45 100644
--- a/drivers/thermal/qcom/tsens-8996.c
+++ b/drivers/thermal/qcom/tsens-8996.c
@@ -16,7 +16,7 @@
#include <linux/regmap.h>
#include "tsens.h"
-#define STATUS_OFFSET 0x10a0
+#define STATUS_OFFSET 0xa0
#define LAST_TEMP_MASK 0xfff
#define STATUS_VALID_BIT BIT(21)
#define CODE_SIGN_BIT BIT(11)
@@ -28,7 +28,7 @@ static int get_temp_8996(struct tsens_device *tmdev, int id, int *temp)
unsigned int sensor_addr;
int last_temp = 0, last_temp2 = 0, last_temp3 = 0, ret;
- sensor_addr = STATUS_OFFSET + s->hw_id * 4;
+ sensor_addr = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * 4;
ret = regmap_read(tmdev->map, sensor_addr, &code);
if (ret)
return ret;