From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Amit Kucheria <amit.kucheria@linaro.org>
Cc: linux-kernel@vger.kernel.org, rnayak@codeaurora.org,
linux-arm-msm@vger.kernel.org, edubezval@gmail.com,
smohanad@codeaurora.org, vivek.gautam@codeaurora.org,
andy.gross@linaro.org, Zhang Rui <rui.zhang@intel.com>,
linux-pm@vger.kernel.org
Subject: Re: [PATCH v6 2/7] thermal: tsens: Add support to split up register address space into two
Date: Wed, 11 Jul 2018 09:34:13 -0700 [thread overview]
Message-ID: <20180711163413.GA545@tuxbook-pro> (raw)
In-Reply-To: <e7c5c74bd5ad1820f0f015d8e9b3d7c7b24854a4.1531135999.git.amit.kucheria@linaro.org>
On Mon 09 Jul 04:43 PDT 2018, Amit Kucheria wrote:
> 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.
>
> Fixing old DTs to split the address space into allows us to have cleaner
> common code e.g. get_temp() that is shared across new and old platforms.
>
> But we need to 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>
Regards,
Bjorn
> ---
> drivers/thermal/qcom/tsens-8996.c | 2 +-
> drivers/thermal/qcom/tsens-common.c | 11 +++++++++++
> drivers/thermal/qcom/tsens.h | 1 +
> 3 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/qcom/tsens-8996.c b/drivers/thermal/qcom/tsens-8996.c
> index e1f7781..60765b1 100644
> --- a/drivers/thermal/qcom/tsens-8996.c
> +++ b/drivers/thermal/qcom/tsens-8996.c
> @@ -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;
> diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
> index b1449ad..4a741b0 100644
> --- a/drivers/thermal/qcom/tsens-common.c
> +++ b/drivers/thermal/qcom/tsens-common.c
> @@ -16,6 +16,7 @@
> #include <linux/io.h>
> #include <linux/nvmem-consumer.h>
> #include <linux/of_address.h>
> +#include <linux/of_platform.h>
> #include <linux/platform_device.h>
> #include <linux/regmap.h>
> #include "tsens.h"
> @@ -126,11 +127,21 @@ static const struct regmap_config tsens_config = {
> int __init init_common(struct tsens_device *tmdev)
> {
> void __iomem *base;
> + struct platform_device *op = of_find_device_by_node(tmdev->dev->of_node);
>
> + if (!op)
> + return -EINVAL;
> base = of_iomap(tmdev->dev->of_node, 0);
> if (!base)
> return -EINVAL;
>
> + if (op->num_resources > 1) {
> + tmdev->tm_offset = 0;
> + } else {
> + /* old DTs where SROT and TM were in a contiguous 2K block */
> + tmdev->tm_offset = 0x1000;
> + }
> +
> tmdev->map = devm_regmap_init_mmio(tmdev->dev, base, &tsens_config);
> if (IS_ERR(tmdev->map)) {
> iounmap(base);
> diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
> index dc56e1e..d785b37 100644
> --- a/drivers/thermal/qcom/tsens.h
> +++ b/drivers/thermal/qcom/tsens.h
> @@ -77,6 +77,7 @@ struct tsens_device {
> struct device *dev;
> u32 num_sensors;
> struct regmap *map;
> + u32 tm_offset;
> struct tsens_context ctx;
> const struct tsens_ops *ops;
> struct tsens_sensor sensor[0];
> --
> 2.7.4
>
next prev parent reply other threads:[~2018-07-11 16:34 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-09 11:43 [PATCH v6 0/7] thermal: tsens: Refactoring for TSENSv2 IP Amit Kucheria
2018-07-09 11:43 ` Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 1/7] thermal: tsens: Get rid of unused fields in structure Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 2/7] thermal: tsens: Add support to split up register address space into two Amit Kucheria
2018-07-11 16:34 ` Bjorn Andersson [this message]
2018-07-11 18:37 ` Doug Anderson
2018-07-12 4:40 ` Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 3/7] dt: qcom: 8996: thermal: Move to DT initialisation Amit Kucheria
2018-07-09 11:43 ` Amit Kucheria
2018-07-11 16:37 ` Bjorn Andersson
2018-07-11 16:37 ` Bjorn Andersson
2018-07-11 18:39 ` Doug Anderson
2018-07-11 18:39 ` Doug Anderson
2018-07-12 5:03 ` Amit Kucheria
2018-07-12 5:03 ` Amit Kucheria
2018-07-12 5:03 ` Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 4/7] thermal: tsens: Rename tsens-8996 to tsens-v2 for reuse Amit Kucheria
2018-07-11 16:39 ` Bjorn Andersson
2018-07-09 11:43 ` [PATCH v6 5/7] thermal: tsens: Add generic support for TSENS v2 IP Amit Kucheria
2018-07-11 16:40 ` Bjorn Andersson
2018-07-11 18:40 ` Doug Anderson
2018-07-12 5:12 ` Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 6/7] dt: thermal: tsens: Document the fallback DT property for v2 of TSENS IP Amit Kucheria
2018-07-11 13:49 ` Rob Herring
2018-07-11 16:42 ` Bjorn Andersson
2018-07-11 18:42 ` Doug Anderson
2018-07-12 5:56 ` Amit Kucheria
2018-07-09 11:43 ` [PATCH v6 7/7] arm64: dts: sdm845: Add tsens nodes Amit Kucheria
2018-07-09 11:43 ` Amit Kucheria
2018-07-11 16:41 ` Bjorn Andersson
2018-07-11 16:41 ` Bjorn Andersson
2018-07-11 18:44 ` Doug Anderson
2018-07-11 18:44 ` Doug Anderson
2018-07-11 21:51 ` Matthias Kaehlcke
2018-07-11 21:51 ` Matthias Kaehlcke
2018-07-11 22:00 ` Doug Anderson
2018-07-11 22:00 ` Doug Anderson
2018-07-12 5:36 ` Amit Kucheria
2018-07-12 5:36 ` Amit Kucheria
2018-07-12 5:36 ` Amit Kucheria
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180711163413.GA545@tuxbook-pro \
--to=bjorn.andersson@linaro.org \
--cc=amit.kucheria@linaro.org \
--cc=andy.gross@linaro.org \
--cc=edubezval@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rnayak@codeaurora.org \
--cc=rui.zhang@intel.com \
--cc=smohanad@codeaurora.org \
--cc=vivek.gautam@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.