Thread (18 messages) 18 messages, 4 authors, 2020-07-21

Re: [PATCH v4 2/7] drivers: thermal: tsens: try load regmap from parent for 8960

From: Amit Kucheria <hidden>
Date: 2020-07-20 09:50:25
Also in: linux-arm-msm, linux-clk, linux-pm, lkml

On Thu, Jul 16, 2020 at 7:58 AM Ansuel Smith [off-list ref] wrote:
Devices based on 8060 tsens driver (ipq8064) use the reg of the gcc
typo: 8960
quoted hunk ↗ jump to hunk
driver. Try to load the regmap of the parent as they share the same
regs.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
 drivers/thermal/qcom/tsens-8960.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/qcom/tsens-8960.c b/drivers/thermal/qcom/tsens-8960.c
index 2a28a5af209e..45788eb3c666 100644
--- a/drivers/thermal/qcom/tsens-8960.c
+++ b/drivers/thermal/qcom/tsens-8960.c
@@ -7,6 +7,7 @@
 #include <linux/delay.h>
 #include <linux/bitops.h>
 #include <linux/regmap.h>
+#include <linux/mfd/syscon.h>
 #include <linux/thermal.h>
 #include "tsens.h"
@@ -168,8 +169,17 @@ static int init_8960(struct tsens_priv *priv)
        u32 reg_cntl;

        priv->tm_map = dev_get_regmap(priv->dev, NULL);
-       if (!priv->tm_map)
+       if (!priv->tm_map) {
+               struct device *parent = priv->dev->parent;
+
+               if (parent)
+                       priv->tm_map = syscon_node_to_regmap(parent->of_node);
+       }
+
+       if (!priv->tm_map || IS_ERR(priv->tm_map)) {
+               dev_err(priv->dev, "failed to get tsens regmap\n");
                return -ENODEV;
+       }

        /*
         * The status registers for each sensor are discontiguous
--
2.27.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help