Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* QCOM SoC Temperature Sensor (TSENS)

Required properties:
- compatible:
  Must be one of the following:
    - "qcom,msm8916-tsens" (MSM8916)
    - "qcom,msm8974-tsens" (MSM8974)
    - "qcom,msm8996-tsens" (MSM8996)
    - "qcom,qcs404-tsens", "qcom,tsens-v1" (QCS404)
    - "qcom,msm8998-tsens", "qcom,tsens-v2" (MSM8998)
    - "qcom,sdm845-tsens", "qcom,tsens-v2" (SDM845)
  The generic "qcom,tsens-v2" property must be used as a fallback for any SoC
  with version 2 of the TSENS IP. MSM8996 is the only exception because the
  generic property did not exist when support was added.
  Similarly, the generic "qcom,tsens-v1" property must be used as a fallback for
  any SoC with version 1 of the TSENS IP.

- reg: Address range of the thermal registers.
  New platforms containing v2.x.y of the TSENS IP must specify the SROT and TM
  register spaces separately, with order being TM before SROT.
  See Example 2, below.

- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
- #qcom,sensors: Number of sensors in tsens block
- Refer to Documentation/devicetree/bindings/nvmem/nvmem.txt to know how to specify
nvmem cells

Example 1 (legacy support before a fallback tsens-v2 property was introduced):
tsens: thermal-sensor@900000 {
		compatible = "qcom,msm8916-tsens";
		reg = <0x4a8000 0x2000>;
		nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
		nvmem-cell-names = "caldata", "calsel";
		#thermal-sensor-cells = <1>;
	};

Example 2 (for any platform containing v2 of the TSENS IP):
tsens0: thermal-sensor@c263000 {
		compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
		reg = <0xc263000 0x1ff>, /* TM */
			<0xc222000 0x1ff>; /* SROT */
		#qcom,sensors = <13>;
		#thermal-sensor-cells = <1>;
	};

Example 3 (for any platform containing v1 of the TSENS IP):
tsens: thermal-sensor@4a9000 {
		compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
		reg = <0x004a9000 0x1000>, /* TM */
		      <0x004a8000 0x1000>; /* SROT */
		nvmem-cells = <&tsens_caldata>;
		nvmem-cell-names = "calib";
		#qcom,sensors = <10>;
		#thermal-sensor-cells = <1>;
	};