diff mbox series

[5/6] ARM: dts: msm8226: Add tsens node and related nvmem cells

Message ID 20230507201225.89694-6-matti.lehtimaki@gmail.com (mailing list archive)
State Accepted
Commit 0f8861c9fc7cc9af6d6f65d6657aa9cf2531b29c
Headers show
Series Enable MSM8226 TSENS support | expand

Commit Message

Matti Lehtimäki May 7, 2023, 8:12 p.m. UTC
Specify pre-parsed per-sensor calibration nvmem cells in the qfprom
device node rather than parsing the whole data blob in the driver.

Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com>
---
 arch/arm/boot/dts/qcom-msm8226.dtsi | 113 ++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

Comments

Luca Weiss May 7, 2023, 8:31 p.m. UTC | #1
On Sonntag, 7. Mai 2023 22:12:23 CEST Matti Lehtimäki wrote:
> Specify pre-parsed per-sensor calibration nvmem cells in the qfprom
> device node rather than parsing the whole data blob in the driver.

I haven't double checked all the qfprom offsets but since you verified it
twice on your side, I believe you ;)

Reviewed-by: Luca Weiss <luca@z3ntu.xyz>

> 
> Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com>
> ---
>  arch/arm/boot/dts/qcom-msm8226.dtsi | 113 ++++++++++++++++++++++++++++
>  1 file changed, 113 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi
> b/arch/arm/boot/dts/qcom-msm8226.dtsi index c34b8f3139ae..a0c3d25eea65
> 100644
> --- a/arch/arm/boot/dts/qcom-msm8226.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
> @@ -500,6 +500,34 @@ data-pins {
>  			};
>  		};
> 
> +		tsens: thermal-sensor@fc4a9000 {
> +			compatible = "qcom,msm8226-tsens", "qcom,tsens-v0_1";
> +			reg = <0xfc4a9000 0x1000>, /* TM */
> +			      <0xfc4a8000 0x1000>; /* SROT */
> +			nvmem-cells = <&tsens_mode>,
> +				      <&tsens_base1>, <&tsens_base2>,
> +				      <&tsens_s0_p1>, <&tsens_s0_p2>,
> +				      <&tsens_s1_p1>, <&tsens_s1_p2>,
> +				      <&tsens_s2_p1>, <&tsens_s2_p2>,
> +				      <&tsens_s3_p1>, <&tsens_s3_p2>,
> +				      <&tsens_s4_p1>, <&tsens_s4_p2>,
> +				      <&tsens_s5_p1>, <&tsens_s5_p2>,
> +				      <&tsens_s6_p1>, <&tsens_s6_p2>;
> +			nvmem-cell-names = "mode",
> +					   "base1", "base2",
> +					   "s0_p1", "s0_p2",
> +					   "s1_p1", "s1_p2",
> +					   "s2_p1", "s2_p2",
> +					   "s3_p1", "s3_p2",
> +					   "s4_p1", "s4_p2",
> +					   "s5_p1", "s5_p2",
> +					   "s6_p1", "s6_p2";
> +			#qcom,sensors = <6>;
> +			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "uplow";
> +			#thermal-sensor-cells = <1>;
> +		};
> +
>  		restart@fc4ab000 {
>  			compatible = "qcom,pshold";
>  			reg = <0xfc4ab000 0x4>;
> @@ -510,6 +538,91 @@ qfprom: qfprom@fc4bc000 {
>  			reg = <0xfc4bc000 0x1000>;
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> +
> +			tsens_base1: base1@1c1 {
> +				reg = <0x1c1 0x2>;
> +				bits = <5 8>;
> +			};
> +
> +			tsens_s0_p1: s0-p1@1c2 {
> +				reg = <0x1c2 0x2>;
> +				bits = <5 6>;
> +			};
> +
> +			tsens_s1_p1: s1-p1@1c4 {
> +				reg = <0x1c4 0x1>;
> +				bits = <0 6>;
> +			};
> +
> +			tsens_s2_p1: s2-p1@1c4 {
> +				reg = <0x1c4 0x2>;
> +				bits = <6 6>;
> +			};
> +
> +			tsens_s3_p1: s3-p1@1c5 {
> +				reg = <0x1c5 0x2>;
> +				bits = <4 6>;
> +			};
> +
> +			tsens_s4_p1: s4-p1@1c6 {
> +				reg = <0x1c6 0x1>;
> +				bits = <2 6>;
> +			};
> +
> +			tsens_s5_p1: s5-p1@1c7 {
> +				reg = <0x1c7 0x1>;
> +				bits = <0 6>;
> +			};
> +
> +			tsens_s6_p1: s6-p1@1ca {
> +				reg = <0x1ca 0x2>;
> +				bits = <4 6>;
> +			};
> +
> +			tsens_base2: base2@1cc {
> +				reg = <0x1cc 0x1>;
> +				bits = <0 8>;
> +			};
> +
> +			tsens_s0_p2: s0-p2@1cd {
> +				reg = <0x1cd 0x1>;
> +				bits = <0 6>;
> +			};
> +
> +			tsens_s1_p2: s1-p2@1cd {
> +				reg = <0x1cd 0x2>;
> +				bits = <6 6>;
> +			};
> +
> +			tsens_s2_p2: s2-p2@1ce {
> +				reg = <0x1ce 0x2>;
> +				bits = <4 6>;
> +			};
> +
> +			tsens_s3_p2: s3-p2@1cf {
> +				reg = <0x1cf 0x1>;
> +				bits = <2 6>;
> +			};
> +
> +			tsens_s4_p2: s4-p2@446 {
> +				reg = <0x446 0x2>;
> +				bits = <4 6>;
> +			};
> +
> +			tsens_s5_p2: s5-p2@447 {
> +				reg = <0x447 0x1>;
> +				bits = <2 6>;
> +			};
> +
> +			tsens_s6_p2: s6-p2@44e {
> +				reg = <0x44e 0x1>;
> +				bits = <1 6>;
> +			};
> +
> +			tsens_mode: mode@44f {
> +				reg = <0x44f 0x1>;
> +				bits = <5 3>;
> +			};
>  		};
> 
>  		spmi_bus: spmi@fc4cf000 {
Dmitry Baryshkov May 7, 2023, 8:41 p.m. UTC | #2
On 07/05/2023 23:12, Matti Lehtimäki wrote:
> Specify pre-parsed per-sensor calibration nvmem cells in the qfprom
> device node rather than parsing the whole data blob in the driver.
> 
> Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com>
> ---
>   arch/arm/boot/dts/qcom-msm8226.dtsi | 113 ++++++++++++++++++++++++++++
>   1 file changed, 113 insertions(+)

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

I did not manually check all the offsets, but they look sane to me.
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi
index c34b8f3139ae..a0c3d25eea65 100644
--- a/arch/arm/boot/dts/qcom-msm8226.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
@@ -500,6 +500,34 @@  data-pins {
 			};
 		};
 
+		tsens: thermal-sensor@fc4a9000 {
+			compatible = "qcom,msm8226-tsens", "qcom,tsens-v0_1";
+			reg = <0xfc4a9000 0x1000>, /* TM */
+			      <0xfc4a8000 0x1000>; /* SROT */
+			nvmem-cells = <&tsens_mode>,
+				      <&tsens_base1>, <&tsens_base2>,
+				      <&tsens_s0_p1>, <&tsens_s0_p2>,
+				      <&tsens_s1_p1>, <&tsens_s1_p2>,
+				      <&tsens_s2_p1>, <&tsens_s2_p2>,
+				      <&tsens_s3_p1>, <&tsens_s3_p2>,
+				      <&tsens_s4_p1>, <&tsens_s4_p2>,
+				      <&tsens_s5_p1>, <&tsens_s5_p2>,
+				      <&tsens_s6_p1>, <&tsens_s6_p2>;
+			nvmem-cell-names = "mode",
+					   "base1", "base2",
+					   "s0_p1", "s0_p2",
+					   "s1_p1", "s1_p2",
+					   "s2_p1", "s2_p2",
+					   "s3_p1", "s3_p2",
+					   "s4_p1", "s4_p2",
+					   "s5_p1", "s5_p2",
+					   "s6_p1", "s6_p2";
+			#qcom,sensors = <6>;
+			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "uplow";
+			#thermal-sensor-cells = <1>;
+		};
+
 		restart@fc4ab000 {
 			compatible = "qcom,pshold";
 			reg = <0xfc4ab000 0x4>;
@@ -510,6 +538,91 @@  qfprom: qfprom@fc4bc000 {
 			reg = <0xfc4bc000 0x1000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
+
+			tsens_base1: base1@1c1 {
+				reg = <0x1c1 0x2>;
+				bits = <5 8>;
+			};
+
+			tsens_s0_p1: s0-p1@1c2 {
+				reg = <0x1c2 0x2>;
+				bits = <5 6>;
+			};
+
+			tsens_s1_p1: s1-p1@1c4 {
+				reg = <0x1c4 0x1>;
+				bits = <0 6>;
+			};
+
+			tsens_s2_p1: s2-p1@1c4 {
+				reg = <0x1c4 0x2>;
+				bits = <6 6>;
+			};
+
+			tsens_s3_p1: s3-p1@1c5 {
+				reg = <0x1c5 0x2>;
+				bits = <4 6>;
+			};
+
+			tsens_s4_p1: s4-p1@1c6 {
+				reg = <0x1c6 0x1>;
+				bits = <2 6>;
+			};
+
+			tsens_s5_p1: s5-p1@1c7 {
+				reg = <0x1c7 0x1>;
+				bits = <0 6>;
+			};
+
+			tsens_s6_p1: s6-p1@1ca {
+				reg = <0x1ca 0x2>;
+				bits = <4 6>;
+			};
+
+			tsens_base2: base2@1cc {
+				reg = <0x1cc 0x1>;
+				bits = <0 8>;
+			};
+
+			tsens_s0_p2: s0-p2@1cd {
+				reg = <0x1cd 0x1>;
+				bits = <0 6>;
+			};
+
+			tsens_s1_p2: s1-p2@1cd {
+				reg = <0x1cd 0x2>;
+				bits = <6 6>;
+			};
+
+			tsens_s2_p2: s2-p2@1ce {
+				reg = <0x1ce 0x2>;
+				bits = <4 6>;
+			};
+
+			tsens_s3_p2: s3-p2@1cf {
+				reg = <0x1cf 0x1>;
+				bits = <2 6>;
+			};
+
+			tsens_s4_p2: s4-p2@446 {
+				reg = <0x446 0x2>;
+				bits = <4 6>;
+			};
+
+			tsens_s5_p2: s5-p2@447 {
+				reg = <0x447 0x1>;
+				bits = <2 6>;
+			};
+
+			tsens_s6_p2: s6-p2@44e {
+				reg = <0x44e 0x1>;
+				bits = <1 6>;
+			};
+
+			tsens_mode: mode@44f {
+				reg = <0x44f 0x1>;
+				bits = <5 3>;
+			};
 		};
 
 		spmi_bus: spmi@fc4cf000 {