Re: [PATCH 3/4] arm64: dts: qcom: Add PMIC thermal support for Shikra CQ2390M SoM platform

From: Rakesh Kota

Date: Wed Jun 17 2026 - 10:14:43 EST


On Mon, Jun 15, 2026 at 12:45:03AM +0300, Dmitry Baryshkov wrote:
> On Sat, Jun 13, 2026 at 01:39:23PM +0530, Jishnu Prakash wrote:
> > Add ADC channels for system thermistors, used for thermal mitigation.
> > Add ADC thermal bridge nodes for pa/quiet/msm thermistors. Enable temperature
> > alarm nodes for PM4125 and PM8005. Add thermal zones for temp-alarm devices
> > and system thermistors exposed as thermal bridge nodes.
> >
> > Co-developed-by: Rakesh Kota <rakesh.kota@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Rakesh Kota <rakesh.kota@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Jishnu Prakash <jishnu.prakash@xxxxxxxxxxxxxxxx>
> > ---
> > arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi | 184 +++++++++++++++++++++++++++
> > 1 file changed, 184 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
> > index dc3861489f64..c6c09d773abe 100644
> > --- a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
> > @@ -4,6 +4,7 @@
> > */
> >
> > #include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/iio/qcom,spmi-vadc.h>
> > #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> >
> > #include "shikra.dtsi"
> > @@ -27,9 +28,184 @@ key-volume-up {
> > linux,can-disable;
> > };
> > };
> > +
> > + pm4125_msm_therm_bridge: pm4125-msm-therm-bridge {
>
> Generic node names, please. See, how other platforms name them.
we will update in upcoming patch.

>
> > + compatible = "generic-adc-thermal";
> > + io-channels = <&pm4125_adc ADC5_AMUX_THM3_100K_PU>;
> > + io-channel-names = "sensor-channel";
> > + #thermal-sensor-cells = <0>;
> > + };
> > +
> > + pm4125_pa_therm_bridge: pm4125-pa-therm-bridge {
> > + compatible = "generic-adc-thermal";
> > + io-channels = <&pm4125_adc ADC5_AMUX_THM1_100K_PU>;
> > + io-channel-names = "sensor-channel";
> > + #thermal-sensor-cells = <0>;
> > + };
> > +
> > + pm4125_quiet_therm_bridge: pm4125-quiet-therm-bridge {
> > + compatible = "generic-adc-thermal";
> > + io-channels = <&pm4125_adc ADC5_AMUX_THM2_100K_PU>;
> > + io-channel-names = "sensor-channel";
> > + #thermal-sensor-cells = <0>;
> > + };
> > +
> > + thermal-zones {
> > + pm4125-thermal {
> > + polling-delay-passive = <100>;
> > + polling-delay = <0>;
> > + thermal-sensors = <&pm4125_tz>;
>
> This should be a part of the pm4125.dtsi
>
ok, we will move it to pm4125.dtsi.

> > +
> > + trips {
> > + pm4125_trip0: trip0 {
> > + temperature = <105000>;
> > + hysteresis = <0>;
> > + type = "passive";
> > + };
> > +
> > + pm4125_trip1: trip1 {
> > + temperature = <125000>;
> > + hysteresis = <0>;
> > + type = "hot";
> > + };
> > +
> > + pm4125_trip2: trip2 {
> > + temperature = <155000>;
> > + hysteresis = <0>;
> > + type = "critical";
> > + };
> > + };
> > + };
> > +
> > + pm8005-thermal {
> > + polling-delay-passive = <0>;
> > + polling-delay = <0>;
> > + thermal-sensors = <&pm8005_tz>;
>
> pm8005.dtsi
>
ok, we will move it to pm8005.dtsi.

> > +
> > + trips {
> > + pm8005_trip0: trip0 {
> > + temperature = <105000>;
> > + hysteresis = <0>;
> > + type = "passive";
> > + };
> > +
> > + pm8005_trip1: trip1 {
> > + temperature = <125000>;
> > + hysteresis = <0>;
> > + type = "passive";
> > + };
> > +
> > + pm8005_trip2: trip2 {
> > + temperature = <145000>;
> > + hysteresis = <0>;
> > + type = "passive";
> > + };
> > + };
> > + };
> > +
> > + sys-1-thermal {
> > + polling-delay-passive = <2000>;
> > + polling-delay = <0>;
> > + thermal-sensors = <&pm4125_pa_therm_bridge>;
> > +
> > + trips {
> > + active-config0 {
> > + temperature = <125000>;
> > + hysteresis = <1000>;
> > + type = "passive";
>
> Passive cooling at 125°C sounds very strange. Especially without any
> cooling device attached.
>
Yes, that's correct. Since no cooling device is present, I'll update
active-config0 to a 'hot' trip type at 80°C with 2°C hysteresis for
thermal monitoring. This will be included in the upcoming patch.

active-config0 {
temperature = <80000>;
hysteresis = <2000>;
type = "hot";
};
> > + };
> > + };
> > + };
> > +
> > + sys-2-thermal {
> > + polling-delay-passive = <2000>;
> > + polling-delay = <0>;
> > + thermal-sensors = <&pm4125_quiet_therm_bridge>;
> > +
> > + trips {
> > + active-config0 {
> > + temperature = <125000>;
> > + hysteresis = <1000>;
> > + type = "passive";
> > + };
> > + };
> > + };
> > +
> > + sys-3-thermal {
> > + polling-delay-passive = <2000>;
> > + polling-delay = <0>;
> > + thermal-sensors = <&pm4125_msm_therm_bridge>;
> > +
> > + trips {
> > + active-config0 {
> > + temperature = <125000>;
> > + hysteresis = <1000>;
> > + type = "passive";
> > + };
> > + };
> > + };
> > + };
> > +};
> > +
> > +&pm4125_adc {
> > + pinctrl-0 = <&pm4125_adc_gpio5_default>, <&pm4125_adc_gpio6_default>;
> > + pinctrl-names = "default";
> > + status = "okay";
>
> Empty line before status.
>
We will update the upcoming patch.

regards
Rakesh Kota
> > +
> > + channel@4d {
> > + reg = <ADC5_AMUX_THM1_100K_PU>;
> > + label = "pa_therm";
> > + qcom,ratiometric;
> > + qcom,hw-settle-time = <200>;
> > + qcom,pre-scaling = <1 1>;
> > + };
> > +
> > + channel@4e {
> > + reg = <ADC5_AMUX_THM2_100K_PU>;
> > + label = "quiet_therm";
> > + qcom,ratiometric;
> > + qcom,hw-settle-time = <200>;
> > + qcom,pre-scaling = <1 1>;
> > + };
> > +
> > + channel@4f {
> > + reg = <ADC5_AMUX_THM3_100K_PU>;
> > + label = "msm_therm";
> > + qcom,ratiometric;
> > + qcom,hw-settle-time = <200>;
> > + qcom,pre-scaling = <1 1>;
> > + };
> > +
> > + channel@54 {
> > + reg = <ADC5_GPIO3_100K_PU>;
> > + label = "chgr_skin";
> > + qcom,ratiometric;
> > + qcom,hw-settle-time = <200>;
> > + qcom,pre-scaling = <1 1>;
> > + };
> > +
> > + channel@55 {
> > + reg = <ADC5_GPIO4_100K_PU>;
> > + label = "gnss_therm";
> > + qcom,ratiometric;
> > + qcom,hw-settle-time = <200>;
> > + qcom,pre-scaling = <1 1>;
> > + };
> > };
> >
> > &pm4125_gpios {
> > + pm4125_adc_gpio5_default: pm4125-adc-gpio5-state {
> > + pins = "gpio5";
> > + function = PMIC_GPIO_FUNC_NORMAL;
> > + bias-high-impedance;
> > + };
> > +
> > + pm4125_adc_gpio6_default: pm4125-adc-gpio6-state {
> > + pins = "gpio6";
> > + function = PMIC_GPIO_FUNC_NORMAL;
> > + bias-high-impedance;
> > + };
> > +
> > vol_up_n: vol-up-n-state {
> > pins = "gpio9";
> > function = PMIC_GPIO_FUNC_NORMAL;
> > @@ -45,10 +221,18 @@ &pm4125_resin {
> > status = "okay";
> > };
> >
> > +&pm4125_tz {
> > + status = "okay";
> > +};
> > +
> > &pm8005_regulators {
> > status = "disabled";
> > };
> >
> > +&pm8005_tz {
> > + status = "okay";
> > +};
> > +
> > &rpm_requests {
> > regulators {
> > compatible = "qcom,rpm-pm2250-regulators";
> >
> > --
> > 2.43.0
> >
>
> --
> With best wishes
> Dmitry