* [PATCH v1 00/10] Another round of tsens cleanups
@ 2018-08-09 12:32 Amit Kucheria
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
2018-08-09 12:32 ` [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes Amit Kucheria
0 siblings, 2 replies; 9+ messages in thread
From: Amit Kucheria @ 2018-08-09 12:32 UTC (permalink / raw)
To: linux-arm-kernel
This is another series of tsens cleanups before we add interrupt support.
This applies on top of the earlier two series[1][2] that have already been
accepted for 4.19.
In this series, we have the following:
- splitup 8916 and 8974 register address spaces for SROT and TM
- cleanups: move to spdx, dead code removal, removal of id field
- Add support to map the SROT address space for DTs that list it separately
- Check if TSENS IP is enabled in firmware by querying the SROT space
- Add reg-names property to get more readable outputs in /proc/iomem
- Add myself as maintainer of tsens
Regards,
Amit
[1] https://lore.kernel.org/lkml/cover.1531895128.git.amit.kucheria at linaro.org/
[2] https://lore.kernel.org/lkml/cover.1532600791.git.amit.kucheria at linaro.org/
Amit Kucheria (10):
arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
dt-bindings: thermal: Fix a typo in documentation
thermal: tsens: Add SPDX license identifiers
thermal: tsens: Get rid of dead code
thermal: tsens: Rename map field in order to add a second address map
thermal: tsens: Add the SROT address map
thermal: tsens: Check if the IP is correctly enabled by firmware
thermal: tsens: Get rid of 'id' field
arm64: dts: qcom: Add reg-names for all tsens nodes
MAINTAINERS: Add entry for Qualcomm TSENS thermal drivers
.../devicetree/bindings/thermal/thermal.txt | 2 +-
MAINTAINERS | 7 +++
arch/arm/boot/dts/qcom-msm8974.dtsi | 7 ++-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 7 ++-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 2 +
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +
drivers/thermal/qcom/tsens-8916.c | 11 +---
drivers/thermal/qcom/tsens-8960.c | 41 +++++-------
drivers/thermal/qcom/tsens-8974.c | 11 +---
drivers/thermal/qcom/tsens-common.c | 62 ++++++++++++-------
drivers/thermal/qcom/tsens-v2.c | 6 +-
drivers/thermal/qcom/tsens.c | 21 +------
drivers/thermal/qcom/tsens.h | 24 +++----
13 files changed, 99 insertions(+), 104 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-09 12:32 [PATCH v1 00/10] Another round of tsens cleanups Amit Kucheria
@ 2018-08-09 12:32 ` Amit Kucheria
2018-08-09 19:10 ` Matthias Kaehlcke
` (2 more replies)
2018-08-09 12:32 ` [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes Amit Kucheria
1 sibling, 3 replies; 9+ messages in thread
From: Amit Kucheria @ 2018-08-09 12:32 UTC (permalink / raw)
To: linux-arm-kernel
We've earlier added support to split the register address space into TM
and SROT regions.
Split up the regmap address space into two for the remaining platforms that
have a similar register layout and make corresponding changes to the
get_temp_common() function used by these platforms.
Since tsens-common.c/init_common() currently only registers one address
space, the order is important (TM before SROT). This is OK since the code
doesn't really use the SROT functionality yet.
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
---
arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
drivers/thermal/qcom/tsens-common.c | 5 +++--
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index d9019a49b292..3c4b81c29798 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -427,11 +427,13 @@
};
};
- tsens: thermal-sensor at fc4a8000 {
+ tsens: thermal-sensor at fc4a9000 {
compatible = "qcom,msm8974-tsens";
- reg = <0xfc4a8000 0x2000>;
+ reg = <0xfc4a9000 0x1000>, /* TM */
+ <0xfc4a8000 0x1000>; /* SROT */
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
+ #qcom,sensors = <11>;
#thermal-sensor-cells = <1>;
};
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index cc1040eacdf5..abf84df5a7bc 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -774,11 +774,13 @@
};
};
- tsens: thermal-sensor at 4a8000 {
+ tsens: thermal-sensor at 4a9000 {
compatible = "qcom,msm8916-tsens";
- reg = <0x4a8000 0x2000>;
+ reg = <0x4a9000 0x1000>, /* TM */
+ <0x4a8000 0x1000>; /* SROT */
nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
nvmem-cell-names = "calib", "calib_sel";
+ #qcom,sensors = <5>;
#thermal-sensor-cells = <1>;
};
diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
index 6207d8d92351..478739543bbc 100644
--- a/drivers/thermal/qcom/tsens-common.c
+++ b/drivers/thermal/qcom/tsens-common.c
@@ -21,7 +21,7 @@
#include <linux/regmap.h>
#include "tsens.h"
-#define S0_ST_ADDR 0x1030
+#define STATUS_OFFSET 0x30
#define SN_ADDR_OFFSET 0x4
#define SN_ST_TEMP_MASK 0x3ff
#define CAL_DEGC_PT1 30
@@ -107,8 +107,9 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
unsigned int status_reg;
int last_temp = 0, ret;
- status_reg = S0_ST_ADDR + s->hw_id * SN_ADDR_OFFSET;
+ status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
ret = regmap_read(tmdev->map, status_reg, &code);
+
if (ret)
return ret;
last_temp = code & SN_ST_TEMP_MASK;
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes
2018-08-09 12:32 [PATCH v1 00/10] Another round of tsens cleanups Amit Kucheria
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
@ 2018-08-09 12:32 ` Amit Kucheria
2018-08-09 21:05 ` Matthias Kaehlcke
1 sibling, 1 reply; 9+ messages in thread
From: Amit Kucheria @ 2018-08-09 12:32 UTC (permalink / raw)
To: linux-arm-kernel
Instead of showing up as thermal-sensor@<addr>, the nodes will show up as
tsens0_tm, tsen1_tm, tsens1_srot, etc. in /proc/iomem making it easier to
read.
IOW,
0c222000-0c2221fe : thermal-sensor at c263000
0c223000-0c2231fe : thermal-sensor at c265000
0c263000-0c2631fe : thermal-sensor at c263000
0c265000-0c2651fe : thermal-sensor at c265000
becomes
0c222000-0c2221fe : tsens0_srot
0c223000-0c2231fe : tsens1_srot
0c263000-0c2631fe : tsens0_tm
0c265000-0c2651fe : tsens1_tm
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
---
arch/arm/boot/dts/qcom-msm8974.dtsi | 1 +
arch/arm64/boot/dts/qcom/msm8916.dtsi | 1 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 ++
4 files changed, 6 insertions(+)
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 3c4b81c29798..64c9f81ddd90 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -431,6 +431,7 @@
compatible = "qcom,msm8974-tsens";
reg = <0xfc4a9000 0x1000>, /* TM */
<0xfc4a8000 0x1000>; /* SROT */
+ reg-names = "tsens_tm", "tsens_srot";
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
#qcom,sensors = <11>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index abf84df5a7bc..4e6a5e462a91 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -778,6 +778,7 @@
compatible = "qcom,msm8916-tsens";
reg = <0x4a9000 0x1000>, /* TM */
<0x4a8000 0x1000>; /* SROT */
+ reg-names = "tsens_tm", "tsens_srot";
nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
nvmem-cell-names = "calib", "calib_sel";
#qcom,sensors = <5>;
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index c2dca3a30091..7e5982daa2ed 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -969,6 +969,7 @@
compatible = "qcom,msm8996-tsens";
reg = <0x4a9000 0x1000>, /* TM */
<0x4a8000 0x1000>; /* SROT */
+ reg-names = "tsens0_tm", "tsens0_srot";
#qcom,sensors = <13>;
#thermal-sensor-cells = <1>;
};
@@ -977,6 +978,7 @@
compatible = "qcom,msm8996-tsens";
reg = <0x4ad000 0x1000>, /* TM */
<0x4ac000 0x1000>; /* SROT */
+ reg-names = "tsens1_tm", "tsens1_srot";
#qcom,sensors = <8>;
#thermal-sensor-cells = <1>;
};
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index f722785df26b..efd5d7abd1cd 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -1531,6 +1531,7 @@
compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
reg = <0xc263000 0x1ff>, /* TM */
<0xc222000 0x1ff>; /* SROT */
+ reg-names = "tsens0_tm", "tsens0_srot";
#qcom,sensors = <13>;
#thermal-sensor-cells = <1>;
};
@@ -1539,6 +1540,7 @@
compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
reg = <0xc265000 0x1ff>, /* TM */
<0xc223000 0x1ff>; /* SROT */
+ reg-names = "tsens1_tm", "tsens1_srot";
#qcom,sensors = <8>;
#thermal-sensor-cells = <1>;
};
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
@ 2018-08-09 19:10 ` Matthias Kaehlcke
2018-08-10 4:50 ` Amit Kucheria
2018-08-24 23:21 ` Eduardo Valentin
2018-08-24 23:27 ` Eduardo Valentin
2 siblings, 1 reply; 9+ messages in thread
From: Matthias Kaehlcke @ 2018-08-09 19:10 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 09, 2018 at 06:02:33PM +0530, Amit Kucheria wrote:
> We've earlier added support to split the register address space into TM
> and SROT regions.
>
> Split up the regmap address space into two for the remaining platforms that
> have a similar register layout and make corresponding changes to the
> get_temp_common() function used by these platforms.
>
> Since tsens-common.c/init_common() currently only registers one address
> space, the order is important (TM before SROT). This is OK since the code
> doesn't really use the SROT functionality yet.
>
> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
> arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
> arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
> drivers/thermal/qcom/tsens-common.c | 5 +++--
> 3 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> index d9019a49b292..3c4b81c29798 100644
> --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> @@ -427,11 +427,13 @@
> };
> };
>
> - tsens: thermal-sensor at fc4a8000 {
> + tsens: thermal-sensor at fc4a9000 {
> compatible = "qcom,msm8974-tsens";
> - reg = <0xfc4a8000 0x2000>;
> + reg = <0xfc4a9000 0x1000>, /* TM */
> + <0xfc4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> nvmem-cell-names = "calib", "calib_backup";
> + #qcom,sensors = <11>;
nit: adding the number of sensors isn't directly related and probably
should be in a separate patch. Not important enough to re-spin just
for this though ;-)
> #thermal-sensor-cells = <1>;
> };
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> index cc1040eacdf5..abf84df5a7bc 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> @@ -774,11 +774,13 @@
> };
> };
>
> - tsens: thermal-sensor at 4a8000 {
> + tsens: thermal-sensor at 4a9000 {
> compatible = "qcom,msm8916-tsens";
> - reg = <0x4a8000 0x2000>;
> + reg = <0x4a9000 0x1000>, /* TM */
> + <0x4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> nvmem-cell-names = "calib", "calib_sel";
> + #qcom,sensors = <5>;
ditto
> #thermal-sensor-cells = <1>;
> };
>
> diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
> index 6207d8d92351..478739543bbc 100644
> --- a/drivers/thermal/qcom/tsens-common.c
> +++ b/drivers/thermal/qcom/tsens-common.c
> @@ -21,7 +21,7 @@
> #include <linux/regmap.h>
> #include "tsens.h"
>
> -#define S0_ST_ADDR 0x1030
> +#define STATUS_OFFSET 0x30
> #define SN_ADDR_OFFSET 0x4
> #define SN_ST_TEMP_MASK 0x3ff
> #define CAL_DEGC_PT1 30
> @@ -107,8 +107,9 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
> unsigned int status_reg;
> int last_temp = 0, ret;
>
> - status_reg = S0_ST_ADDR + s->hw_id * SN_ADDR_OFFSET;
> + status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
> ret = regmap_read(tmdev->map, status_reg, &code);
> +
> if (ret)
> return ret;
> last_temp = code & SN_ST_TEMP_MASK;
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes
2018-08-09 12:32 ` [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes Amit Kucheria
@ 2018-08-09 21:05 ` Matthias Kaehlcke
0 siblings, 0 replies; 9+ messages in thread
From: Matthias Kaehlcke @ 2018-08-09 21:05 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 09, 2018 at 06:02:41PM +0530, Amit Kucheria wrote:
> Instead of showing up as thermal-sensor@<addr>, the nodes will show up as
> tsens0_tm, tsen1_tm, tsens1_srot, etc. in /proc/iomem making it easier to
> read.
>
> IOW,
>
> 0c222000-0c2221fe : thermal-sensor at c263000
> 0c223000-0c2231fe : thermal-sensor at c265000
> 0c263000-0c2631fe : thermal-sensor at c263000
> 0c265000-0c2651fe : thermal-sensor at c265000
>
> becomes
>
> 0c222000-0c2221fe : tsens0_srot
> 0c223000-0c2231fe : tsens1_srot
> 0c263000-0c2631fe : tsens0_tm
> 0c265000-0c2651fe : tsens1_tm
>
> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
> arch/arm/boot/dts/qcom-msm8974.dtsi | 1 +
> arch/arm64/boot/dts/qcom/msm8916.dtsi | 1 +
> arch/arm64/boot/dts/qcom/msm8996.dtsi | 2 ++
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 ++
> 4 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> index 3c4b81c29798..64c9f81ddd90 100644
> --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> @@ -431,6 +431,7 @@
> compatible = "qcom,msm8974-tsens";
> reg = <0xfc4a9000 0x1000>, /* TM */
> <0xfc4a8000 0x1000>; /* SROT */
> + reg-names = "tsens_tm", "tsens_srot";
> nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> nvmem-cell-names = "calib", "calib_backup";
> #qcom,sensors = <11>;
> diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> index abf84df5a7bc..4e6a5e462a91 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> @@ -778,6 +778,7 @@
> compatible = "qcom,msm8916-tsens";
> reg = <0x4a9000 0x1000>, /* TM */
> <0x4a8000 0x1000>; /* SROT */
> + reg-names = "tsens_tm", "tsens_srot";
> nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> nvmem-cell-names = "calib", "calib_sel";
> #qcom,sensors = <5>;
> diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
> index c2dca3a30091..7e5982daa2ed 100644
> --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
> @@ -969,6 +969,7 @@
> compatible = "qcom,msm8996-tsens";
> reg = <0x4a9000 0x1000>, /* TM */
> <0x4a8000 0x1000>; /* SROT */
> + reg-names = "tsens0_tm", "tsens0_srot";
> #qcom,sensors = <13>;
> #thermal-sensor-cells = <1>;
> };
> @@ -977,6 +978,7 @@
> compatible = "qcom,msm8996-tsens";
> reg = <0x4ad000 0x1000>, /* TM */
> <0x4ac000 0x1000>; /* SROT */
> + reg-names = "tsens1_tm", "tsens1_srot";
> #qcom,sensors = <8>;
> #thermal-sensor-cells = <1>;
> };
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index f722785df26b..efd5d7abd1cd 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -1531,6 +1531,7 @@
> compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
> reg = <0xc263000 0x1ff>, /* TM */
> <0xc222000 0x1ff>; /* SROT */
> + reg-names = "tsens0_tm", "tsens0_srot";
> #qcom,sensors = <13>;
> #thermal-sensor-cells = <1>;
> };
> @@ -1539,6 +1540,7 @@
> compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
> reg = <0xc265000 0x1ff>, /* TM */
> <0xc223000 0x1ff>; /* SROT */
> + reg-names = "tsens1_tm", "tsens1_srot";
> #qcom,sensors = <8>;
> #thermal-sensor-cells = <1>;
> };
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-09 19:10 ` Matthias Kaehlcke
@ 2018-08-10 4:50 ` Amit Kucheria
0 siblings, 0 replies; 9+ messages in thread
From: Amit Kucheria @ 2018-08-10 4:50 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Aug 10, 2018 at 12:41 AM Matthias Kaehlcke <mka@chromium.org> wrote:
>
> On Thu, Aug 09, 2018 at 06:02:33PM +0530, Amit Kucheria wrote:
> > We've earlier added support to split the register address space into TM
> > and SROT regions.
> >
> > Split up the regmap address space into two for the remaining platforms that
> > have a similar register layout and make corresponding changes to the
> > get_temp_common() function used by these platforms.
> >
> > Since tsens-common.c/init_common() currently only registers one address
> > space, the order is important (TM before SROT). This is OK since the code
> > doesn't really use the SROT functionality yet.
> >
> > Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> > ---
> > arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
> > arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
> > drivers/thermal/qcom/tsens-common.c | 5 +++--
> > 3 files changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> > index d9019a49b292..3c4b81c29798 100644
> > --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> > +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> > @@ -427,11 +427,13 @@
> > };
> > };
> >
> > - tsens: thermal-sensor at fc4a8000 {
> > + tsens: thermal-sensor at fc4a9000 {
> > compatible = "qcom,msm8974-tsens";
> > - reg = <0xfc4a8000 0x2000>;
> > + reg = <0xfc4a9000 0x1000>, /* TM */
> > + <0xfc4a8000 0x1000>; /* SROT */
> > nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> > nvmem-cell-names = "calib", "calib_backup";
> > + #qcom,sensors = <11>;
>
> nit: adding the number of sensors isn't directly related and probably
> should be in a separate patch. Not important enough to re-spin just
> for this though ;-)
Hi Matthias,
Sometimes the urge to avoid frivolous patches takes over too strongly. :-)
I'll split it out in a respin. Thanks for the quick review of the series.
Regards,
Amit
> > #thermal-sensor-cells = <1>;
> > };
> >
> > diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > index cc1040eacdf5..abf84df5a7bc 100644
> > --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > @@ -774,11 +774,13 @@
> > };
> > };
> >
> > - tsens: thermal-sensor at 4a8000 {
> > + tsens: thermal-sensor at 4a9000 {
> > compatible = "qcom,msm8916-tsens";
> > - reg = <0x4a8000 0x2000>;
> > + reg = <0x4a9000 0x1000>, /* TM */
> > + <0x4a8000 0x1000>; /* SROT */
> > nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> > nvmem-cell-names = "calib", "calib_sel";
> > + #qcom,sensors = <5>;
>
> ditto
>
> > #thermal-sensor-cells = <1>;
> > };
> >
> > diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
> > index 6207d8d92351..478739543bbc 100644
> > --- a/drivers/thermal/qcom/tsens-common.c
> > +++ b/drivers/thermal/qcom/tsens-common.c
> > @@ -21,7 +21,7 @@
> > #include <linux/regmap.h>
> > #include "tsens.h"
> >
> > -#define S0_ST_ADDR 0x1030
> > +#define STATUS_OFFSET 0x30
> > #define SN_ADDR_OFFSET 0x4
> > #define SN_ST_TEMP_MASK 0x3ff
> > #define CAL_DEGC_PT1 30
> > @@ -107,8 +107,9 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
> > unsigned int status_reg;
> > int last_temp = 0, ret;
> >
> > - status_reg = S0_ST_ADDR + s->hw_id * SN_ADDR_OFFSET;
> > + status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
> > ret = regmap_read(tmdev->map, status_reg, &code);
> > +
> > if (ret)
> > return ret;
> > last_temp = code & SN_ST_TEMP_MASK;
>
> Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
2018-08-09 19:10 ` Matthias Kaehlcke
@ 2018-08-24 23:21 ` Eduardo Valentin
2018-08-24 23:27 ` Eduardo Valentin
2 siblings, 0 replies; 9+ messages in thread
From: Eduardo Valentin @ 2018-08-24 23:21 UTC (permalink / raw)
To: linux-arm-kernel
hello,
On Thu, Aug 09, 2018 at 06:02:33PM +0530, Amit Kucheria wrote:
> We've earlier added support to split the register address space into TM
> and SROT regions.
>
> Split up the regmap address space into two for the remaining platforms that
> have a similar register layout and make corresponding changes to the
> get_temp_common() function used by these platforms.
>
> Since tsens-common.c/init_common() currently only registers one address
> space, the order is important (TM before SROT). This is OK since the code
> doesn't really use the SROT functionality yet.
>
> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
> arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
> arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
> drivers/thermal/qcom/tsens-common.c | 5 +++--
Can you please resend this with two separate patches, one with
the driver changes another for the dts(i) changes. Just that
I prefer taking only the driver changes once accepting the
dts changes. Makes merging easier to avoid conflicts when sending
pulls.
Thanks.
> 3 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> index d9019a49b292..3c4b81c29798 100644
> --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> @@ -427,11 +427,13 @@
> };
> };
>
> - tsens: thermal-sensor at fc4a8000 {
> + tsens: thermal-sensor at fc4a9000 {
> compatible = "qcom,msm8974-tsens";
> - reg = <0xfc4a8000 0x2000>;
> + reg = <0xfc4a9000 0x1000>, /* TM */
> + <0xfc4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> nvmem-cell-names = "calib", "calib_backup";
> + #qcom,sensors = <11>;
> #thermal-sensor-cells = <1>;
> };
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> index cc1040eacdf5..abf84df5a7bc 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> @@ -774,11 +774,13 @@
> };
> };
>
> - tsens: thermal-sensor at 4a8000 {
> + tsens: thermal-sensor at 4a9000 {
> compatible = "qcom,msm8916-tsens";
> - reg = <0x4a8000 0x2000>;
> + reg = <0x4a9000 0x1000>, /* TM */
> + <0x4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> nvmem-cell-names = "calib", "calib_sel";
> + #qcom,sensors = <5>;
> #thermal-sensor-cells = <1>;
> };
>
> diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
> index 6207d8d92351..478739543bbc 100644
> --- a/drivers/thermal/qcom/tsens-common.c
> +++ b/drivers/thermal/qcom/tsens-common.c
> @@ -21,7 +21,7 @@
> #include <linux/regmap.h>
> #include "tsens.h"
>
> -#define S0_ST_ADDR 0x1030
> +#define STATUS_OFFSET 0x30
> #define SN_ADDR_OFFSET 0x4
> #define SN_ST_TEMP_MASK 0x3ff
> #define CAL_DEGC_PT1 30
> @@ -107,8 +107,9 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
> unsigned int status_reg;
> int last_temp = 0, ret;
>
> - status_reg = S0_ST_ADDR + s->hw_id * SN_ADDR_OFFSET;
> + status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
> ret = regmap_read(tmdev->map, status_reg, &code);
> +
> if (ret)
> return ret;
> last_temp = code & SN_ST_TEMP_MASK;
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
2018-08-09 19:10 ` Matthias Kaehlcke
2018-08-24 23:21 ` Eduardo Valentin
@ 2018-08-24 23:27 ` Eduardo Valentin
2018-08-27 12:54 ` Amit Kucheria
2 siblings, 1 reply; 9+ messages in thread
From: Eduardo Valentin @ 2018-08-24 23:27 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 09, 2018 at 06:02:33PM +0530, Amit Kucheria wrote:
> We've earlier added support to split the register address space into TM
> and SROT regions.
>
> Split up the regmap address space into two for the remaining platforms that
> have a similar register layout and make corresponding changes to the
> get_temp_common() function used by these platforms.
>
> Since tsens-common.c/init_common() currently only registers one address
> space, the order is important (TM before SROT). This is OK since the code
> doesn't really use the SROT functionality yet.
>
> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
> arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
> arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
> drivers/thermal/qcom/tsens-common.c | 5 +++--
> 3 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> index d9019a49b292..3c4b81c29798 100644
> --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> @@ -427,11 +427,13 @@
> };
> };
>
> - tsens: thermal-sensor at fc4a8000 {
> + tsens: thermal-sensor at fc4a9000 {
> compatible = "qcom,msm8974-tsens";
> - reg = <0xfc4a8000 0x2000>;
> + reg = <0xfc4a9000 0x1000>, /* TM */
> + <0xfc4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> nvmem-cell-names = "calib", "calib_backup";
> + #qcom,sensors = <11>;
> #thermal-sensor-cells = <1>;
> };
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> index cc1040eacdf5..abf84df5a7bc 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> @@ -774,11 +774,13 @@
> };
> };
>
> - tsens: thermal-sensor at 4a8000 {
> + tsens: thermal-sensor at 4a9000 {
> compatible = "qcom,msm8916-tsens";
> - reg = <0x4a8000 0x2000>;
> + reg = <0x4a9000 0x1000>, /* TM */
> + <0x4a8000 0x1000>; /* SROT */
> nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> nvmem-cell-names = "calib", "calib_sel";
> + #qcom,sensors = <5>;
> #thermal-sensor-cells = <1>;
Looking closer to this, I fail to remember the reasoning why
#qcom,sensors property was needed.
> };
>
> diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
> index 6207d8d92351..478739543bbc 100644
> --- a/drivers/thermal/qcom/tsens-common.c
> +++ b/drivers/thermal/qcom/tsens-common.c
> @@ -21,7 +21,7 @@
> #include <linux/regmap.h>
> #include "tsens.h"
>
> -#define S0_ST_ADDR 0x1030
> +#define STATUS_OFFSET 0x30
> #define SN_ADDR_OFFSET 0x4
> #define SN_ST_TEMP_MASK 0x3ff
> #define CAL_DEGC_PT1 30
> @@ -107,8 +107,9 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
> unsigned int status_reg;
> int last_temp = 0, ret;
>
> - status_reg = S0_ST_ADDR + s->hw_id * SN_ADDR_OFFSET;
> + status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
> ret = regmap_read(tmdev->map, status_reg, &code);
> +
> if (ret)
> return ret;
> last_temp = code & SN_ST_TEMP_MASK;
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two
2018-08-24 23:27 ` Eduardo Valentin
@ 2018-08-27 12:54 ` Amit Kucheria
0 siblings, 0 replies; 9+ messages in thread
From: Amit Kucheria @ 2018-08-27 12:54 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Aug 25, 2018 at 4:58 AM Eduardo Valentin <edubezval@gmail.com> wrote:
>
> On Thu, Aug 09, 2018 at 06:02:33PM +0530, Amit Kucheria wrote:
> > We've earlier added support to split the register address space into TM
> > and SROT regions.
> >
> > Split up the regmap address space into two for the remaining platforms that
> > have a similar register layout and make corresponding changes to the
> > get_temp_common() function used by these platforms.
> >
> > Since tsens-common.c/init_common() currently only registers one address
> > space, the order is important (TM before SROT). This is OK since the code
> > doesn't really use the SROT functionality yet.
> >
> > Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> > ---
> > arch/arm/boot/dts/qcom-msm8974.dtsi | 6 ++++--
> > arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 ++++--
> > drivers/thermal/qcom/tsens-common.c | 5 +++--
> > 3 files changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
> > index d9019a49b292..3c4b81c29798 100644
> > --- a/arch/arm/boot/dts/qcom-msm8974.dtsi
> > +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
> > @@ -427,11 +427,13 @@
> > };
> > };
> >
> > - tsens: thermal-sensor at fc4a8000 {
> > + tsens: thermal-sensor at fc4a9000 {
> > compatible = "qcom,msm8974-tsens";
> > - reg = <0xfc4a8000 0x2000>;
> > + reg = <0xfc4a9000 0x1000>, /* TM */
> > + <0xfc4a8000 0x1000>; /* SROT */
> > nvmem-cells = <&tsens_calib>, <&tsens_backup>;
> > nvmem-cell-names = "calib", "calib_backup";
> > + #qcom,sensors = <11>;
> > #thermal-sensor-cells = <1>;
> > };
> >
> > diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > index cc1040eacdf5..abf84df5a7bc 100644
> > --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > @@ -774,11 +774,13 @@
> > };
> > };
> >
> > - tsens: thermal-sensor at 4a8000 {
> > + tsens: thermal-sensor at 4a9000 {
> > compatible = "qcom,msm8916-tsens";
> > - reg = <0x4a8000 0x2000>;
> > + reg = <0x4a9000 0x1000>, /* TM */
> > + <0x4a8000 0x1000>; /* SROT */
> > nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
> > nvmem-cell-names = "calib", "calib_sel";
> > + #qcom,sensors = <5>;
> > #thermal-sensor-cells = <1>;
>
> Looking closer to this, I fail to remember the reasoning why
> #qcom,sensors property was needed.
It is necessary for platforms that have multiple TSENS blocks. This
then allows us to specify the number of connected sensors per block.
See commit 6d7c70d1cd65 ("thermal: qcom: tsens: Allow number of
sensors to come from DT") for details.
As requested by Matthias, I'm moving this bit to its own patch in v2.
Regards,
Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-08-27 12:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-09 12:32 [PATCH v1 00/10] Another round of tsens cleanups Amit Kucheria
2018-08-09 12:32 ` [PATCH v1 01/10] arm/arm64: dts: msm8974/msm8916: thermal: Split address space into two Amit Kucheria
2018-08-09 19:10 ` Matthias Kaehlcke
2018-08-10 4:50 ` Amit Kucheria
2018-08-24 23:21 ` Eduardo Valentin
2018-08-24 23:27 ` Eduardo Valentin
2018-08-27 12:54 ` Amit Kucheria
2018-08-09 12:32 ` [PATCH v1 09/10] arm64: dts: qcom: Add reg-names for all tsens nodes Amit Kucheria
2018-08-09 21:05 ` Matthias Kaehlcke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).