All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: document qcom tsens thermal
@ 2015-01-27  4:08 Narendran Rajan
  2015-01-27  7:15 ` Srinivas Kandagatla
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Narendran Rajan @ 2015-01-27  4:08 UTC (permalink / raw)
  To: Zhang Rui, Eduardo Valentin; +Cc: Linux ARM MSM, Linux PM, Narendran Rajan

Add binding documentation for the QCOM tsens device tree node
---
 .../devicetree/bindings/thermal/qcom-thermal.txt   | 58 ++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/thermal/qcom-thermal.txt

diff --git a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
new file mode 100644
index 0000000..d2e99d6
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
@@ -0,0 +1,58 @@
+* QCOM SoC Temperature Sensor (TSENS)
+
+Required properties:
+- compatible : "qcom,ipq806x-tsens"
+- interrupts : The interrupt number to the cpu. The interrupt specifier format
+	       depends on the interrupt controller.
+- qcom,imem : Must contain phandle to imem syscon node
+- qcom,tsens-base : Must contain phandle to clock controller node
+- qcom,calib-offsets : Must contain offsets to primary and secondary
+			calibration data within imem
+- qcom,tsens-slopes : Must contain slope value for each of the sensors controlled
+			by this device
+- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
+
+Exiample:
+tsens: tsens-msm8960 {
+		compatible = "qcom,ipq806x-tsens";
+		interrupts = <0 178 1>;
+		qcom,imem = <&imem>;
+		qcom,tsens-base = <&gcc>;
+		qcom,calib-offsets = <0x400 0x410>;
+		qcom,tsens-slopes = <1176 1176 1154 1176 1111
+				1132 1132 1199 1132 1199
+				1132>;
+		#thermal-sensor-cells = <1>;
+	};
+
+Example: referring to thermal sensors:
+thermal-zones {
+	cpu_thermal: cpu_thermal {
+		polling-delay-passive = <1000>; /* milliseconds */
+		polling-delay = <5000>; /* milliseconds */
+
+		/* sensor	ID */
+		thermal-sensors = <&tsens	1>;
+
+		trips {
+			cpu_alert0: cpu_alert {
+				temperature = <80000>; /* millicelsius */
+				hysteresis = <2000>; /* millicelsius */
+				type = "passive";
+			};
+			cpu_crit: cpu_crit {
+				temperature = <120000>; /* millicelsius */
+				hysteresis = <2000>; /* millicelsius */
+				type = "critical";
+			};
+		};
+
+		cooling-maps {
+			map0 {
+				trip = <&cpu_alert0>;
+				cooling-device =
+					<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+			};
+		};
+	};
+};
-- 
Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27  4:08 [PATCH] dt-bindings: document qcom tsens thermal Narendran Rajan
@ 2015-01-27  7:15 ` Srinivas Kandagatla
  2015-01-27 19:44   ` Narendran Rajan
  2015-01-29 22:29   ` Eduardo Valentin
  2015-01-29 18:02 ` Lina Iyer
  2015-01-29 22:35 ` Eduardo Valentin
  2 siblings, 2 replies; 7+ messages in thread
From: Srinivas Kandagatla @ 2015-01-27  7:15 UTC (permalink / raw)
  To: Narendran Rajan, Zhang Rui, Eduardo Valentin; +Cc: Linux ARM MSM, Linux PM

Hi Narendran,

What a coincidence.. I was just in the middle of forward porting the 
same driver from 3.4 kernel :-) You look fast... :-)

On 27/01/15 04:08, Narendran Rajan wrote:
> Add binding documentation for the QCOM tsens device tree node
> ---
>   .../devicetree/bindings/thermal/qcom-thermal.txt   | 58 ++++++++++++++++++++++
>   1 file changed, 58 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/thermal/qcom-thermal.txt
>
> diff --git a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> new file mode 100644
> index 0000000..d2e99d6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> @@ -0,0 +1,58 @@
> +* QCOM SoC Temperature Sensor (TSENS)
> +
> +Required properties:
> +- compatible : "qcom,ipq806x-tsens"

I think this should be something like qcom,msm8960-tsens as that is the 
first part where this tsens appeared.

> +- interrupts : The interrupt number to the cpu. The interrupt specifier format
> +	       depends on the interrupt controller.
> +- qcom,imem : Must contain phandle to imem syscon node
Doing this way would work but not great, We should try to do this in an 
abstracted way so that all the drivers who are in need of qfprom would 
not add the same code all the time. I did send some WIP patches on msm 
mailing list.

> +- qcom,tsens-base : Must contain phandle to clock controller node
This is not correct, you dont need this property.

AFAIK for APQ8064 Tsens should be a child of gcc as some of the 
registers are in already mapped by gcc. You should probably use this 
patch + do a
	base = dev_get_regmap(dev->parent, NULL);

------------------>cut<-----------------------------
 From 87b71df272048fb3aaa89b77524e4b6426e5ddc5 Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Thu, 22 Jan 2015 14:03:53 +0000
Subject: [PATCH] clk: qcom: gcc-msm8960: add child devices support.

This patch adds support to add child devices to gcc as some of the
registers mapped by gcc are used by things like thermal sensors.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
  drivers/clk/qcom/gcc-msm8960.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
index 0b61e8a..8307db3 100644
--- a/drivers/clk/qcom/gcc-msm8960.c
+++ b/drivers/clk/qcom/gcc-msm8960.c
@@ -15,6 +15,7 @@
  #include <linux/bitops.h>
  #include <linux/err.h>
  #include <linux/platform_device.h>
+#include <linux/of_platform.h>
  #include <linux/module.h>
  #include <linux/of.h>
  #include <linux/of_device.h>
@@ -3666,7 +3667,8 @@ static int gcc_msm8960_probe(struct 
platform_device *pdev)
  		hfpll_l2.d = &hfpll_l2_8064_data;
  	}

-	return qcom_cc_probe(pdev, match->data);
+	qcom_cc_probe(pdev, match->data);
+	return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
  }

  static int gcc_msm8960_remove(struct platform_device *pdev)
-- 
2.2.1

------------------>cut<-----------------------------

> +- qcom,calib-offsets : Must contain offsets to primary and secondary
> +			calibration data within imem
> +- qcom,tsens-slopes : Must contain slope value for each of the sensors controlled
> +			by this device
> +- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
> +
> +Exiample:
> +tsens: tsens-msm8960 {
> +		compatible = "qcom,ipq806x-tsens";

> +		interrupts = <0 178 1>;
> +		qcom,imem = <&imem>;
> +		qcom,tsens-base = <&gcc>;
> +		qcom,calib-offsets = <0x400 0x410>;
> +		qcom,tsens-slopes = <1176 1176 1154 1176 1111
> +				1132 1132 1199 1132 1199
> +				1132>;
> +		#thermal-sensor-cells = <1>;
> +	};
> +
> +Example: referring to thermal sensors:
> +thermal-zones {
> +	cpu_thermal: cpu_thermal {
> +		polling-delay-passive = <1000>; /* milliseconds */
> +		polling-delay = <5000>; /* milliseconds */
> +
> +		/* sensor	ID */
> +		thermal-sensors = <&tsens	1>;
> +
> +		trips {
> +			cpu_alert0: cpu_alert {
> +				temperature = <80000>; /* millicelsius */
> +				hysteresis = <2000>; /* millicelsius */
> +				type = "passive";
> +			};
> +			cpu_crit: cpu_crit {
> +				temperature = <120000>; /* millicelsius */
> +				hysteresis = <2000>; /* millicelsius */
> +				type = "critical";
> +			};
> +		};
> +
> +		cooling-maps {
> +			map0 {
> +				trip = <&cpu_alert0>;
> +				cooling-device =
> +					<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +			};
> +		};
> +	};
> +};
>

---srini

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27  7:15 ` Srinivas Kandagatla
@ 2015-01-27 19:44   ` Narendran Rajan
  2015-01-29  6:06     ` Srinivas Kandagatla
  2015-01-29 22:29   ` Eduardo Valentin
  1 sibling, 1 reply; 7+ messages in thread
From: Narendran Rajan @ 2015-01-27 19:44 UTC (permalink / raw)
  To: 'Srinivas Kandagatla', 'Narendran Rajan',
	'Zhang Rui', 'Eduardo Valentin'
  Cc: 'Linux ARM MSM', 'Linux PM'

Hi Srini,

Thanks for the comments

> -----Original Message-----
> From: linux-arm-msm-owner@vger.kernel.org [mailto:linux-arm-msm-
> owner@vger.kernel.org] On Behalf Of Srinivas Kandagatla
> Sent: Monday, January 26, 2015 11:16 PM
> To: Narendran Rajan; Zhang Rui; Eduardo Valentin
> Cc: Linux ARM MSM; Linux PM
> Subject: Re: [PATCH] dt-bindings: document qcom tsens thermal
> 
> Hi Narendran,
> 
> What a coincidence.. I was just in the middle of forward porting the same
> driver from 3.4 kernel :-) You look fast... :-)
> 
> On 27/01/15 04:08, Narendran Rajan wrote:
> > Add binding documentation for the QCOM tsens device tree node
> > ---
> >   .../devicetree/bindings/thermal/qcom-thermal.txt   | 58
> ++++++++++++++++++++++
> >   1 file changed, 58 insertions(+)
> >   create mode 100644
> > Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> >
> > diff --git
> > a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> > b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> > new file mode 100644
> > index 0000000..d2e99d6
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> > @@ -0,0 +1,58 @@
> > +* QCOM SoC Temperature Sensor (TSENS)
> > +
> > +Required properties:
> > +- compatible : "qcom,ipq806x-tsens"
> 
> I think this should be something like qcom,msm8960-tsens as that is the
first
> part where this tsens appeared.
> 
Will address in next version.

> > +- interrupts : The interrupt number to the cpu. The interrupt specifier
> format
> > +	       depends on the interrupt controller.
> > +- qcom,imem : Must contain phandle to imem syscon node
> Doing this way would work but not great, We should try to do this in an
> abstracted way so that all the drivers who are in need of qfprom would not
> add the same code all the time. I did send some WIP patches on msm mailing
> list.
> 
> > +- qcom,tsens-base : Must contain phandle to clock controller node
> This is not correct, you dont need this property.
> 
> AFAIK for APQ8064 Tsens should be a child of gcc as some of the registers
are
> in already mapped by gcc. You should probably use this patch + do a
> 	base = dev_get_regmap(dev->parent, NULL);
> 

I started with a child node version as you suggested, but later modified to
be top 
level device node.   IMHO tsens register map sandwiched between gcc
registers 
looked odd and didn't want to expose this in the device tree hierarchy,
hence the 
roundabout way to get the gcc phandle.

Let me please know your thoughts. I am open to either ways.

> ------------------>cut<-----------------------------
>  From 87b71df272048fb3aaa89b77524e4b6426e5ddc5 Mon Sep 17 00:00:00
> 2001
> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Date: Thu, 22 Jan 2015 14:03:53 +0000
> Subject: [PATCH] clk: qcom: gcc-msm8960: add child devices support.
> 
> This patch adds support to add child devices to gcc as some of the
registers
> mapped by gcc are used by things like thermal sensors.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>   drivers/clk/qcom/gcc-msm8960.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-
> msm8960.c index 0b61e8a..8307db3 100644
> --- a/drivers/clk/qcom/gcc-msm8960.c
> +++ b/drivers/clk/qcom/gcc-msm8960.c
> @@ -15,6 +15,7 @@
>   #include <linux/bitops.h>
>   #include <linux/err.h>
>   #include <linux/platform_device.h>
> +#include <linux/of_platform.h>
>   #include <linux/module.h>
>   #include <linux/of.h>
>   #include <linux/of_device.h>
> @@ -3666,7 +3667,8 @@ static int gcc_msm8960_probe(struct
> platform_device *pdev)
>   		hfpll_l2.d = &hfpll_l2_8064_data;
>   	}
> 
> -	return qcom_cc_probe(pdev, match->data);
> +	qcom_cc_probe(pdev, match->data);
> +	return of_platform_populate(pdev->dev.of_node, NULL, NULL,
> +&pdev->dev);
>   }
> 
>   static int gcc_msm8960_remove(struct platform_device *pdev)
> --
> 2.2.1
> 
> ------------------>cut<-----------------------------
> 
> > +- qcom,calib-offsets : Must contain offsets to primary and secondary
> > +			calibration data within imem
> > +- qcom,tsens-slopes : Must contain slope value for each of the sensors
> controlled
> > +			by this device
> > +- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a
description.
> > +
> > +Exiample:
> > +tsens: tsens-msm8960 {
> > +		compatible = "qcom,ipq806x-tsens";
> 
> > +		interrupts = <0 178 1>;
> > +		qcom,imem = <&imem>;
> > +		qcom,tsens-base = <&gcc>;
> > +		qcom,calib-offsets = <0x400 0x410>;
> > +		qcom,tsens-slopes = <1176 1176 1154 1176 1111
> > +				1132 1132 1199 1132 1199
> > +				1132>;
> > +		#thermal-sensor-cells = <1>;
> > +	};
> > +
> > +Example: referring to thermal sensors:
> > +thermal-zones {
> > +	cpu_thermal: cpu_thermal {
> > +		polling-delay-passive = <1000>; /* milliseconds */
> > +		polling-delay = <5000>; /* milliseconds */
> > +
> > +		/* sensor	ID */
> > +		thermal-sensors = <&tsens	1>;
> > +
> > +		trips {
> > +			cpu_alert0: cpu_alert {
> > +				temperature = <80000>; /* millicelsius */
> > +				hysteresis = <2000>; /* millicelsius */
> > +				type = "passive";
> > +			};
> > +			cpu_crit: cpu_crit {
> > +				temperature = <120000>; /* millicelsius */
> > +				hysteresis = <2000>; /* millicelsius */
> > +				type = "critical";
> > +			};
> > +		};
> > +
> > +		cooling-maps {
> > +			map0 {
> > +				trip = <&cpu_alert0>;
> > +				cooling-device =
> > +					<&cpu0 THERMAL_NO_LIMIT
> THERMAL_NO_LIMIT>;
> > +			};
> > +		};
> > +	};
> > +};
> >
> 
> ---srini
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm"
in
> the body of a message to majordomo@vger.kernel.org More majordomo
> info at  http://vger.kernel.org/majordomo-info.html

--Naren


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27 19:44   ` Narendran Rajan
@ 2015-01-29  6:06     ` Srinivas Kandagatla
  0 siblings, 0 replies; 7+ messages in thread
From: Srinivas Kandagatla @ 2015-01-29  6:06 UTC (permalink / raw)
  To: Narendran Rajan, 'Narendran Rajan', 'Zhang Rui',
	'Eduardo Valentin'
  Cc: 'Linux ARM MSM', 'Linux PM'



On 27/01/15 19:44, Narendran Rajan wrote:
> Hi Srini,
>
> Thanks for the comments
>
...

>>> +- interrupts : The interrupt number to the cpu. The interrupt specifier
>> format
>>> +	       depends on the interrupt controller.
>>> +- qcom,imem : Must contain phandle to imem syscon node
>> Doing this way would work but not great, We should try to do this in an
>> abstracted way so that all the drivers who are in need of qfprom would not
>> add the same code all the time. I did send some WIP patches on msm mailing
>> list.
>>
>>> +- qcom,tsens-base : Must contain phandle to clock controller node
>> This is not correct, you dont need this property.
>>
>> AFAIK for APQ8064 Tsens should be a child of gcc as some of the registers
> are
>> in already mapped by gcc. You should probably use this patch + do a
>> 	base = dev_get_regmap(dev->parent, NULL);
>>
>
> I started with a child node version as you suggested, but later modified to
> be top
> level device node.   IMHO tsens register map sandwiched between gcc
> registers
> looked odd and didn't want to expose this in the device tree hierarchy,
> hence the
> roundabout way to get the gcc phandle.
>
> Let me please know your thoughts. I am open to either ways.
>
I think we should go with child node approch which makes more sense as 
the we follow same thing with other drivers too.

>> ------------------>cut<-----------------------------
>>   From 87b71df272048fb3aaa89b77524e4b6426e5ddc5 Mon Sep 17 00:00:00
>> 2001
>> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> Date: Thu, 22 Jan 2015 14:03:53 +0000
>> Subject: [PATCH] clk: qcom: gcc-msm8960: add child devices support.
>>
>> This patch adds support to add child devices to gcc as some of the
> registers
>> mapped by gcc are used by things like thermal sensors.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>    drivers/clk/qcom/gcc-msm8960.c | 4 +++-
>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-
>> msm8960.c index 0b61e8a..8307db3 100644
>> --- a/drivers/clk/qcom/gcc-msm8960.c
>> +++ b/drivers/clk/qcom/gcc-msm8960.c
>> @@ -15,6 +15,7 @@
>>    #include <linux/bitops.h>
>>    #include <linux/err.h>
>>    #include <linux/platform_device.h>
>> +#include <linux/of_platform.h>
>>    #include <linux/module.h>
>>    #include <linux/of.h>
>>    #include <linux/of_device.h>
>> @@ -3666,7 +3667,8 @@ static int gcc_msm8960_probe(struct
>> platform_device *pdev)
>>    		hfpll_l2.d = &hfpll_l2_8064_data;
>>    	}
>>
>> -	return qcom_cc_probe(pdev, match->data);
>> +	qcom_cc_probe(pdev, match->data);
>> +	return of_platform_populate(pdev->dev.of_node, NULL, NULL,
>> +&pdev->dev);
>>    }
>>
>>    static int gcc_msm8960_remove(struct platform_device *pdev)
>> --
>> 2.2.1
>>
>> ------------------>cut<-----------------------------
>>
>>> +- qcom,calib-offsets : Must contain offsets to primary and secondary
>>> +			calibration data within imem
>>> +- qcom,tsens-slopes : Must contain slope value for each of the sensors
>> controlled
>>> +			by this device
>>> +- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a
> description.
>>> +
>>> +Exiample:
>>> +tsens: tsens-msm8960 {
>>> +		compatible = "qcom,ipq806x-tsens";
>>
>>> +		interrupts = <0 178 1>;
>>> +		qcom,imem = <&imem>;
>>> +		qcom,tsens-base = <&gcc>;
>>> +		qcom,calib-offsets = <0x400 0x410>;
>>> +		qcom,tsens-slopes = <1176 1176 1154 1176 1111
>>> +				1132 1132 1199 1132 1199
>>> +				1132>;
>>> +		#thermal-sensor-cells = <1>;
>>> +	};
>>> +
>>> +Example: referring to thermal sensors:
>>> +thermal-zones {
>>> +	cpu_thermal: cpu_thermal {
>>> +		polling-delay-passive = <1000>; /* milliseconds */
>>> +		polling-delay = <5000>; /* milliseconds */
>>> +
>>> +		/* sensor	ID */
>>> +		thermal-sensors = <&tsens	1>;
>>> +
>>> +		trips {
>>> +			cpu_alert0: cpu_alert {
>>> +				temperature = <80000>; /* millicelsius */
>>> +				hysteresis = <2000>; /* millicelsius */
>>> +				type = "passive";
>>> +			};
>>> +			cpu_crit: cpu_crit {
>>> +				temperature = <120000>; /* millicelsius */
>>> +				hysteresis = <2000>; /* millicelsius */
>>> +				type = "critical";
>>> +			};
>>> +		};
>>> +
>>> +		cooling-maps {
>>> +			map0 {
>>> +				trip = <&cpu_alert0>;
>>> +				cooling-device =
>>> +					<&cpu0 THERMAL_NO_LIMIT
>> THERMAL_NO_LIMIT>;
>>> +			};
>>> +		};
>>> +	};
>>> +};
>>>
>>
>> ---srini
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm"
> in
>> the body of a message to majordomo@vger.kernel.org More majordomo
>> info at  http://vger.kernel.org/majordomo-info.html
>
> --Naren
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27  4:08 [PATCH] dt-bindings: document qcom tsens thermal Narendran Rajan
  2015-01-27  7:15 ` Srinivas Kandagatla
@ 2015-01-29 18:02 ` Lina Iyer
  2015-01-29 22:35 ` Eduardo Valentin
  2 siblings, 0 replies; 7+ messages in thread
From: Lina Iyer @ 2015-01-29 18:02 UTC (permalink / raw)
  To: Narendran Rajan; +Cc: Zhang Rui, Eduardo Valentin, Linux ARM MSM, Linux PM

On Mon, Jan 26 2015 at 21:08 -0700, Narendran Rajan wrote:
>Add binding documentation for the QCOM tsens device tree node
>---
> .../devicetree/bindings/thermal/qcom-thermal.txt   | 58 ++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/thermal/qcom-thermal.txt
>

This patch should go with the driver. I have not seen the actual DT
nodes for TSENS on QCOM chipsets.

Lina

>diff --git a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
>new file mode 100644
>index 0000000..d2e99d6
>--- /dev/null
>+++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
>@@ -0,0 +1,58 @@
>+* QCOM SoC Temperature Sensor (TSENS)
>+
>+Required properties:
>+- compatible : "qcom,ipq806x-tsens"
>+- interrupts : The interrupt number to the cpu. The interrupt specifier format
>+	       depends on the interrupt controller.
>+- qcom,imem : Must contain phandle to imem syscon node
>+- qcom,tsens-base : Must contain phandle to clock controller node
>+- qcom,calib-offsets : Must contain offsets to primary and secondary
>+			calibration data within imem
>+- qcom,tsens-slopes : Must contain slope value for each of the sensors controlled
>+			by this device
>+- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
>+
>+Exiample:
>+tsens: tsens-msm8960 {
>+		compatible = "qcom,ipq806x-tsens";
>+		interrupts = <0 178 1>;
>+		qcom,imem = <&imem>;
>+		qcom,tsens-base = <&gcc>;
>+		qcom,calib-offsets = <0x400 0x410>;
>+		qcom,tsens-slopes = <1176 1176 1154 1176 1111
>+				1132 1132 1199 1132 1199
>+				1132>;
>+		#thermal-sensor-cells = <1>;
>+	};
>+
>+Example: referring to thermal sensors:
>+thermal-zones {
>+	cpu_thermal: cpu_thermal {
>+		polling-delay-passive = <1000>; /* milliseconds */
>+		polling-delay = <5000>; /* milliseconds */
>+
>+		/* sensor	ID */
>+		thermal-sensors = <&tsens	1>;
>+
>+		trips {
>+			cpu_alert0: cpu_alert {
>+				temperature = <80000>; /* millicelsius */
>+				hysteresis = <2000>; /* millicelsius */
>+				type = "passive";
>+			};
>+			cpu_crit: cpu_crit {
>+				temperature = <120000>; /* millicelsius */
>+				hysteresis = <2000>; /* millicelsius */
>+				type = "critical";
>+			};
>+		};
>+
>+		cooling-maps {
>+			map0 {
>+				trip = <&cpu_alert0>;
>+				cooling-device =
>+					<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>+			};
>+		};
>+	};
>+};
>-- 
>Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27  7:15 ` Srinivas Kandagatla
  2015-01-27 19:44   ` Narendran Rajan
@ 2015-01-29 22:29   ` Eduardo Valentin
  1 sibling, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2015-01-29 22:29 UTC (permalink / raw)
  To: Srinivas Kandagatla; +Cc: Narendran Rajan, Zhang Rui, Linux ARM MSM, Linux PM

On Tue, Jan 27, 2015 at 07:15:34AM +0000, Srinivas Kandagatla wrote:
> Hi Narendran,
> 
> What a coincidence.. I was just in the middle of forward porting the 
> same driver from 3.4 kernel :-) You look fast... :-)
> 
> On 27/01/15 04:08, Narendran Rajan wrote:
> > Add binding documentation for the QCOM tsens device tree node
> > ---
> >   .../devicetree/bindings/thermal/qcom-thermal.txt   | 58 ++++++++++++++++++++++
> >   1 file changed, 58 insertions(+)
> >   create mode 100644 Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> >
> > diff --git a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> > new file mode 100644
> > index 0000000..d2e99d6
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> > @@ -0,0 +1,58 @@
> > +* QCOM SoC Temperature Sensor (TSENS)
> > +
> > +Required properties:
> > +- compatible : "qcom,ipq806x-tsens"
> 
> I think this should be something like qcom,msm8960-tsens as that is the 
> first part where this tsens appeared.
> 
> > +- interrupts : The interrupt number to the cpu. The interrupt specifier format
> > +	       depends on the interrupt controller.
> > +- qcom,imem : Must contain phandle to imem syscon node
> Doing this way would work but not great, We should try to do this in an 
> abstracted way so that all the drivers who are in need of qfprom would 
> not add the same code all the time. I did send some WIP patches on msm 
> mailing list.
> 
> > +- qcom,tsens-base : Must contain phandle to clock controller node
> This is not correct, you dont need this property.
> 
> AFAIK for APQ8064 Tsens should be a child of gcc as some of the 
> registers are in already mapped by gcc. You should probably use this 
> patch + do a
> 	base = dev_get_regmap(dev->parent, NULL);
> 
> ------------------>cut<-----------------------------
>  From 87b71df272048fb3aaa89b77524e4b6426e5ddc5 Mon Sep 17 00:00:00 2001
> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Date: Thu, 22 Jan 2015 14:03:53 +0000
> Subject: [PATCH] clk: qcom: gcc-msm8960: add child devices support.
> 
> This patch adds support to add child devices to gcc as some of the
> registers mapped by gcc are used by things like thermal sensors.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Srinivas,

Can you please send this as proper separated patch?

> ---
>   drivers/clk/qcom/gcc-msm8960.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
> index 0b61e8a..8307db3 100644
> --- a/drivers/clk/qcom/gcc-msm8960.c
> +++ b/drivers/clk/qcom/gcc-msm8960.c
> @@ -15,6 +15,7 @@
>   #include <linux/bitops.h>
>   #include <linux/err.h>
>   #include <linux/platform_device.h>
> +#include <linux/of_platform.h>
>   #include <linux/module.h>
>   #include <linux/of.h>
>   #include <linux/of_device.h>
> @@ -3666,7 +3667,8 @@ static int gcc_msm8960_probe(struct 
> platform_device *pdev)
>   		hfpll_l2.d = &hfpll_l2_8064_data;
>   	}
> 
> -	return qcom_cc_probe(pdev, match->data);
> +	qcom_cc_probe(pdev, match->data);
> +	return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
>   }
> 
>   static int gcc_msm8960_remove(struct platform_device *pdev)
> -- 
> 2.2.1
> 
> ------------------>cut<-----------------------------
> 
> > +- qcom,calib-offsets : Must contain offsets to primary and secondary
> > +			calibration data within imem
> > +- qcom,tsens-slopes : Must contain slope value for each of the sensors controlled
> > +			by this device
> > +- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
> > +
> > +Exiample:
> > +tsens: tsens-msm8960 {
> > +		compatible = "qcom,ipq806x-tsens";
> 
> > +		interrupts = <0 178 1>;
> > +		qcom,imem = <&imem>;
> > +		qcom,tsens-base = <&gcc>;
> > +		qcom,calib-offsets = <0x400 0x410>;
> > +		qcom,tsens-slopes = <1176 1176 1154 1176 1111
> > +				1132 1132 1199 1132 1199
> > +				1132>;
> > +		#thermal-sensor-cells = <1>;
> > +	};
> > +
> > +Example: referring to thermal sensors:
> > +thermal-zones {
> > +	cpu_thermal: cpu_thermal {
> > +		polling-delay-passive = <1000>; /* milliseconds */
> > +		polling-delay = <5000>; /* milliseconds */
> > +
> > +		/* sensor	ID */
> > +		thermal-sensors = <&tsens	1>;
> > +
> > +		trips {
> > +			cpu_alert0: cpu_alert {
> > +				temperature = <80000>; /* millicelsius */
> > +				hysteresis = <2000>; /* millicelsius */
> > +				type = "passive";
> > +			};
> > +			cpu_crit: cpu_crit {
> > +				temperature = <120000>; /* millicelsius */
> > +				hysteresis = <2000>; /* millicelsius */
> > +				type = "critical";
> > +			};
> > +		};
> > +
> > +		cooling-maps {
> > +			map0 {
> > +				trip = <&cpu_alert0>;
> > +				cooling-device =
> > +					<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> > +			};
> > +		};
> > +	};
> > +};
> >
> 
> ---srini

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: document qcom tsens thermal
  2015-01-27  4:08 [PATCH] dt-bindings: document qcom tsens thermal Narendran Rajan
  2015-01-27  7:15 ` Srinivas Kandagatla
  2015-01-29 18:02 ` Lina Iyer
@ 2015-01-29 22:35 ` Eduardo Valentin
  2 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2015-01-29 22:35 UTC (permalink / raw)
  To: Narendran Rajan; +Cc: Zhang Rui, Linux ARM MSM, Linux PM

On Mon, Jan 26, 2015 at 08:08:07PM -0800, Narendran Rajan wrote:
> Add binding documentation for the QCOM tsens device tree node
> ---
>  .../devicetree/bindings/thermal/qcom-thermal.txt   | 58 ++++++++++++++++++++++
>  1 file changed, 58 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> 
> diff --git a/Documentation/devicetree/bindings/thermal/qcom-thermal.txt b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> new file mode 100644
> index 0000000..d2e99d6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/thermal/qcom-thermal.txt
> @@ -0,0 +1,58 @@
> +* QCOM SoC Temperature Sensor (TSENS)
> +
> +Required properties:
> +- compatible : "qcom,ipq806x-tsens"
> +- interrupts : The interrupt number to the cpu. The interrupt specifier format
> +	       depends on the interrupt controller.
> +- qcom,imem : Must contain phandle to imem syscon node
> +- qcom,tsens-base : Must contain phandle to clock controller node
> +- qcom,calib-offsets : Must contain offsets to primary and secondary
> +			calibration data within imem
> +- qcom,tsens-slopes : Must contain slope value for each of the sensors controlled
> +			by this device

Can you please check if the above two properties can be mapped into the
'coefficients' property? It is an optional property of the thermal zone
node.

Check Documentation/devicetree/bindings/thermal/thermal.txt

However, it might require additional implementation in the of thermal
code, as we still have not got that done in any other driver.

My concern here is to avoid adding specific DT entries while we already
defined generic options that can be used.

> +- #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description.
> +
> +Exiample:

s/Exiample/Example/g

> +tsens: tsens-msm8960 {
> +		compatible = "qcom,ipq806x-tsens";
> +		interrupts = <0 178 1>;
> +		qcom,imem = <&imem>;
> +		qcom,tsens-base = <&gcc>;
> +		qcom,calib-offsets = <0x400 0x410>;
> +		qcom,tsens-slopes = <1176 1176 1154 1176 1111
> +				1132 1132 1199 1132 1199
> +				1132>;
> +		#thermal-sensor-cells = <1>;
> +	};
> +
> +Example: referring to thermal sensors:
> +thermal-zones {
> +	cpu_thermal: cpu_thermal {
> +		polling-delay-passive = <1000>; /* milliseconds */
> +		polling-delay = <5000>; /* milliseconds */
> +
> +		/* sensor	ID */
> +		thermal-sensors = <&tsens	1>;
> +

Something like:
                coefficients =          <[slope] [offset]>;


> +		trips {
> +			cpu_alert0: cpu_alert {
> +				temperature = <80000>; /* millicelsius */
> +				hysteresis = <2000>; /* millicelsius */
> +				type = "passive";
> +			};
> +			cpu_crit: cpu_crit {
> +				temperature = <120000>; /* millicelsius */
> +				hysteresis = <2000>; /* millicelsius */
> +				type = "critical";
> +			};
> +		};
> +
> +		cooling-maps {
> +			map0 {
> +				trip = <&cpu_alert0>;
> +				cooling-device =
> +					<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +			};
> +		};
> +	};
> +};
> -- 
> Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-01-29 22:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-27  4:08 [PATCH] dt-bindings: document qcom tsens thermal Narendran Rajan
2015-01-27  7:15 ` Srinivas Kandagatla
2015-01-27 19:44   ` Narendran Rajan
2015-01-29  6:06     ` Srinivas Kandagatla
2015-01-29 22:29   ` Eduardo Valentin
2015-01-29 18:02 ` Lina Iyer
2015-01-29 22:35 ` Eduardo Valentin

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.