Re: [PATCH v5] thermal: Add QPNP PMIC temperature alarm driver
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
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
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)