Re: [PATCH v5] thermal: Add QPNP PMIC temperature alarm driver

2015-02-23 Thread Eduardo Valentin
On Thu, Feb 05, 2015 at 07:12:56PM +0200, Ivan T. Ivanov wrote:
 Add support for the temperature alarm peripheral found inside
 Qualcomm plug-and-play (QPNP) PMIC chips. The temperature alarm
 peripheral outputs a pulse on an interrupt line whenever the
 thermal over temperature stage value changes.
 
 Register a thermal sensor. The temperature reported by this thermal
 sensor device should reflect the actual PMIC die temperature if an
 ADC is present on the given PMIC. If no ADC is present, then the
 reported temperature should be estimated from the over temperature
 stage value.
 
 Cc: David Collins colli...@codeaurora.org
 Signed-off-by: Ivan T. Ivanov iiva...@mm-sol.com

Applying to my -linus branch.

Thanks.

 ---
 
 Changes since v4:
 
 - Reorder IRQ platform get and IIO channel get, this
   fixes error exit path.
 
 - Reorder IRQ request and sensor register calls, this
   simplify error exit path.
 
 v4: https://lkml.org/lkml/2015/2/2/413
 
  .../bindings/thermal/qcom-spmi-temp-alarm.txt  |  57 
  drivers/thermal/Kconfig|  11 +
  drivers/thermal/Makefile   |   1 +
  drivers/thermal/qcom-spmi-temp-alarm.c | 309 
 +
  4 files changed, 378 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
  create mode 100644 drivers/thermal/qcom-spmi-temp-alarm.c
 
 diff --git 
 a/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt 
 b/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
 new file mode 100644
 index 000..290ec06
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
 @@ -0,0 +1,57 @@
 +Qualcomm QPNP PMIC Temperature Alarm
 +
 +QPNP temperature alarm peripherals are found inside of Qualcomm PMIC chips
 +that utilize the Qualcomm SPMI implementation. These peripherals provide an
 +interrupt signal and status register to identify high PMIC die temperature.
 +
 +Required properties:
 +- compatible:  Should contain qcom,spmi-temp-alarm.
 +- reg: Specifies the SPMI address and length of the controller's
 +   registers.
 +- interrupts:  PMIC temperature alarm interrupt.
 +- #thermal-sensor-cells: Should be 0. See thermal.txt for a description.
 +
 +Optional properties:
 +- io-channels: Should contain IIO channel specifier for the ADC channel,
 +   which report chip die temperature.
 +- io-channel-names: Should contain thermal.
 +
 +Example:
 +
 + pm8941_temp: thermal-alarm@2400 {
 + compatible = qcom,spmi-temp-alarm;
 + reg = 0x2400 0x100;
 + interrupts = 0 0x24 0 IRQ_TYPE_EDGE_RISING;
 + #thermal-sensor-cells = 0;
 +
 + io-channels = pm8941_vadc VADC_DIE_TEMP;
 + io-channel-names = thermal;
 + };
 +
 + thermal-zones {
 + pm8941 {
 + polling-delay-passive = 250;
 + polling-delay = 1000;
 +
 + thermal-sensors = pm8941_temp;
 +
 + trips {
 + passive {
 + temperature = 105;
 + hysteresis = 2000;
 + type = passive;
 + };
 + alert {
 + temperature = 125000;
 + hysteresis = 2000;
 + type = hot;
 + };
 + crit {
 + temperature = 145000;
 + hysteresis = 2000;
 + type = critical;
 + };
 + };
 + };
 + };
 +
 diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
 index af40db0..30aee81 100644
 --- a/drivers/thermal/Kconfig
 +++ b/drivers/thermal/Kconfig
 @@ -299,4 +299,15 @@ depends on ARCH_STI  OF
  source drivers/thermal/st/Kconfig
  endmenu
  
 +config QCOM_SPMI_TEMP_ALARM
 + tristate Qualcomm SPMI PMIC Temperature Alarm
 + depends on OF  SPMI  IIO
 + select REGMAP_SPMI
 + help
 +   This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
 +   PMIC devices. It shows up in sysfs as a thermal sensor with multiple
 +   trip points. The temperature reported by the thermal sensor reflects 
 the
 +   real time die temperature if an ADC is present or an estimate of the
 +   temperature based upon the over temperature stage value.
 +
  endif
 diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
 index fa0dc48..1fe8665 100644
 --- a/drivers/thermal/Makefile
 +++ b/drivers/thermal/Makefile
 @@ -22,6 +22,7 @@ thermal_sys-$(CONFIG_CPU_THERMAL)   += cpu_cooling.o
  thermal_sys-$(CONFIG_CLOCK_THERMAL)  

Re: [PATCH v5] thermal: Add QPNP PMIC temperature alarm driver

2015-02-23 Thread Ivan T. Ivanov

On Mon, 2015-02-23 at 16:51 -0400, Eduardo Valentin wrote:
 On Thu, Feb 05, 2015 at 07:12:56PM +0200, Ivan T. Ivanov wrote:
  Add support for the temperature alarm peripheral found inside
  Qualcomm plug-and-play (QPNP) PMIC chips. The temperature alarm
  peripheral outputs a pulse on an interrupt line whenever the
  thermal over temperature stage value changes.
  
  Register a thermal sensor. The temperature reported by this thermal
  sensor device should reflect the actual PMIC die temperature if an
  ADC is present on the given PMIC. If no ADC is present, then the
  reported temperature should be estimated from the over temperature
  stage value.
  
  Cc: David Collins colli...@codeaurora.org
  Signed-off-by: Ivan T. Ivanov iiva...@mm-sol.com
 
 Applying to my -linus branch.



Thank you.
Ivan
--
To unsubscribe from this list: send the line unsubscribe linux-arm-msm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v5] thermal: Add QPNP PMIC temperature alarm driver

2015-02-05 Thread Ivan T. Ivanov
Add support for the temperature alarm peripheral found inside
Qualcomm plug-and-play (QPNP) PMIC chips. The temperature alarm
peripheral outputs a pulse on an interrupt line whenever the
thermal over temperature stage value changes.

Register a thermal sensor. The temperature reported by this thermal
sensor device should reflect the actual PMIC die temperature if an
ADC is present on the given PMIC. If no ADC is present, then the
reported temperature should be estimated from the over temperature
stage value.

Cc: David Collins colli...@codeaurora.org
Signed-off-by: Ivan T. Ivanov iiva...@mm-sol.com
---

Changes since v4:

- Reorder IRQ platform get and IIO channel get, this
  fixes error exit path.

- Reorder IRQ request and sensor register calls, this
  simplify error exit path.

v4: https://lkml.org/lkml/2015/2/2/413

 .../bindings/thermal/qcom-spmi-temp-alarm.txt  |  57 
 drivers/thermal/Kconfig|  11 +
 drivers/thermal/Makefile   |   1 +
 drivers/thermal/qcom-spmi-temp-alarm.c | 309 +
 4 files changed, 378 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
 create mode 100644 drivers/thermal/qcom-spmi-temp-alarm.c

diff --git a/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt 
b/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
new file mode 100644
index 000..290ec06
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
@@ -0,0 +1,57 @@
+Qualcomm QPNP PMIC Temperature Alarm
+
+QPNP temperature alarm peripherals are found inside of Qualcomm PMIC chips
+that utilize the Qualcomm SPMI implementation. These peripherals provide an
+interrupt signal and status register to identify high PMIC die temperature.
+
+Required properties:
+- compatible:  Should contain qcom,spmi-temp-alarm.
+- reg: Specifies the SPMI address and length of the controller's
+   registers.
+- interrupts:  PMIC temperature alarm interrupt.
+- #thermal-sensor-cells: Should be 0. See thermal.txt for a description.
+
+Optional properties:
+- io-channels: Should contain IIO channel specifier for the ADC channel,
+   which report chip die temperature.
+- io-channel-names: Should contain thermal.
+
+Example:
+
+   pm8941_temp: thermal-alarm@2400 {
+   compatible = qcom,spmi-temp-alarm;
+   reg = 0x2400 0x100;
+   interrupts = 0 0x24 0 IRQ_TYPE_EDGE_RISING;
+   #thermal-sensor-cells = 0;
+
+   io-channels = pm8941_vadc VADC_DIE_TEMP;
+   io-channel-names = thermal;
+   };
+
+   thermal-zones {
+   pm8941 {
+   polling-delay-passive = 250;
+   polling-delay = 1000;
+
+   thermal-sensors = pm8941_temp;
+
+   trips {
+   passive {
+   temperature = 105;
+   hysteresis = 2000;
+   type = passive;
+   };
+   alert {
+   temperature = 125000;
+   hysteresis = 2000;
+   type = hot;
+   };
+   crit {
+   temperature = 145000;
+   hysteresis = 2000;
+   type = critical;
+   };
+   };
+   };
+   };
+
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index af40db0..30aee81 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -299,4 +299,15 @@ depends on ARCH_STI  OF
 source drivers/thermal/st/Kconfig
 endmenu
 
+config QCOM_SPMI_TEMP_ALARM
+   tristate Qualcomm SPMI PMIC Temperature Alarm
+   depends on OF  SPMI  IIO
+   select REGMAP_SPMI
+   help
+ This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
+ PMIC devices. It shows up in sysfs as a thermal sensor with multiple
+ trip points. The temperature reported by the thermal sensor reflects 
the
+ real time die temperature if an ADC is present or an estimate of the
+ temperature based upon the over temperature stage value.
+
 endif
diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
index fa0dc48..1fe8665 100644
--- a/drivers/thermal/Makefile
+++ b/drivers/thermal/Makefile
@@ -22,6 +22,7 @@ thermal_sys-$(CONFIG_CPU_THERMAL) += cpu_cooling.o
 thermal_sys-$(CONFIG_CLOCK_THERMAL)+= clock_cooling.o
 
 # platform thermal drivers
+obj-$(CONFIG_QCOM_SPMI_TEMP_ALARM) += qcom-spmi-temp-alarm.o
 obj-$(CONFIG_SPEAR_THERMAL)