Message ID | 20200630032014.22956-1-andy.tang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] arm64: dts: ls1088a: add more thermal zone support | expand |
On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > From: Yuantian Tang <andy.tang@nxp.com> > > There are 2 thermal zones in ls1088a soc. Add the other thermal zone > node to enable it. > Also update the values in calibration table to make the temperatures > monitored more precise. > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > --- > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 +++++++++++------- > 1 file changed, 62 insertions(+), 38 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > index 36a799554620..ccbbc23e6c85 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > @@ -129,19 +129,19 @@ > }; > > thermal-zones { > - cpu_thermal: cpu-thermal { > + core-cluster { > polling-delay-passive = <1000>; > polling-delay = <5000>; > thermal-sensors = <&tmu 0>; > > trips { > - cpu_alert: cpu-alert { > + core_cluster_alert: core-cluster-alert { > temperature = <85000>; > hysteresis = <2000>; > type = "passive"; > }; > > - cpu_crit: cpu-crit { > + core_cluster_crit: core-cluster-crit { > temperature = <95000>; > hysteresis = <2000>; > type = "critical"; > @@ -150,7 +150,7 @@ > > cooling-maps { > map0 { > - trip = <&cpu_alert>; > + trip = <&core_cluster_alert>; > cooling-device = > <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > @@ -163,6 +163,26 @@ > }; > }; > }; > + > + soc { > + polling-delay-passive = <1000>; > + polling-delay = <5000>; > + thermal-sensors = <&tmu 1>; > + > + trips { > + soc-alert { > + temperature = <85000>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > + soc-crit { > + temperature = <95000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > + }; You should also add a cooling-maps section for this thermal zone given that it has a passive trip type. Otherwise there is no use for a passive trip type. > }; > > timer { > @@ -209,45 +229,49 @@ > compatible = "fsl,qoriq-tmu"; > reg = <0x0 0x1f80000 0x0 0x10000>; > interrupts = <0 23 0x4>; > - fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; > + fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>; > fsl,tmu-calibration = > /* Calibration data group 1 */ > - <0x00000000 0x00000026 > - 0x00000001 0x0000002d > - 0x00000002 0x00000032 > - 0x00000003 0x00000039 > - 0x00000004 0x0000003f > - 0x00000005 0x00000046 > - 0x00000006 0x0000004d > - 0x00000007 0x00000054 > - 0x00000008 0x0000005a > - 0x00000009 0x00000061 > - 0x0000000a 0x0000006a > - 0x0000000b 0x00000071 > + <0x00000000 0x00000023 > + 0x00000001 0x0000002a > + 0x00000002 0x00000030 > + 0x00000003 0x00000037 > + 0x00000004 0x0000003d > + 0x00000005 0x00000044 > + 0x00000006 0x0000004a > + 0x00000007 0x00000051 > + 0x00000008 0x00000057 > + 0x00000009 0x0000005e > + 0x0000000a 0x00000064 > + 0x0000000b 0x0000006b > /* Calibration data group 2 */ > - 0x00010000 0x00000025 > - 0x00010001 0x0000002c > - 0x00010002 0x00000035 > - 0x00010003 0x0000003d > - 0x00010004 0x00000045 > - 0x00010005 0x0000004e > - 0x00010006 0x00000057 > - 0x00010007 0x00000061 > - 0x00010008 0x0000006b > - 0x00010009 0x00000076 > + 0x00010000 0x00000022 > + 0x00010001 0x0000002a > + 0x00010002 0x00000032 > + 0x00010003 0x0000003a > + 0x00010004 0x00000042 > + 0x00010005 0x0000004a > + 0x00010006 0x00000052 > + 0x00010007 0x0000005a > + 0x00010008 0x00000062 > + 0x00010009 0x0000006a > /* Calibration data group 3 */ > - 0x00020000 0x00000029 > - 0x00020001 0x00000033 > - 0x00020002 0x0000003d > - 0x00020003 0x00000049 > - 0x00020004 0x00000056 > - 0x00020005 0x00000061 > - 0x00020006 0x0000006d > + 0x00020000 0x00000021 > + 0x00020001 0x0000002b > + 0x00020002 0x00000035 > + 0x00020003 0x00000040 > + 0x00020004 0x0000004a > + 0x00020005 0x00000054 > + 0x00020006 0x0000005e > /* Calibration data group 4 */ > - 0x00030000 0x00000021 > - 0x00030001 0x0000002a > - 0x00030002 0x0000003c > - 0x00030003 0x0000004e>; > + 0x00030000 0x00000010 > + 0x00030001 0x0000001c > + 0x00030002 0x00000027 > + 0x00030003 0x00000032 > + 0x00030004 0x0000003e > + 0x00030005 0x00000049 > + 0x00030006 0x00000054 > + 0x00030007 0x00000060>; > little-endian; > #thermal-sensor-cells = <1>; > }; > -- > 2.17.1 >
> -----Original Message----- > From: Amit Kucheria <amit.kucheria@linaro.org> > Sent: 2020年6月30日 13:12 > To: Andy Tang <andy.tang@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal zone > support > > Caution: EXT Email > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > There are 2 thermal zones in ls1088a soc. Add the other thermal zone > > node to enable it. > > Also update the values in calibration table to make the temperatures > > monitored more precise. > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > --- > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > +++++++++++------- > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > index 36a799554620..ccbbc23e6c85 100644 > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > @@ -129,19 +129,19 @@ > > }; > > > > thermal-zones { > > - cpu_thermal: cpu-thermal { > > + core-cluster { > > polling-delay-passive = <1000>; > > polling-delay = <5000>; > > thermal-sensors = <&tmu 0>; > > > > trips { > > - cpu_alert: cpu-alert { > > + core_cluster_alert: > core-cluster-alert > > + { > > temperature = <85000>; > > hysteresis = <2000>; > > type = "passive"; > > }; > > > > - cpu_crit: cpu-crit { > > + core_cluster_crit: core-cluster-crit { > > temperature = <95000>; > > hysteresis = <2000>; > > type = "critical"; @@ > -150,7 > > +150,7 @@ > > > > cooling-maps { > > map0 { > > - trip = <&cpu_alert>; > > + trip = > <&core_cluster_alert>; > > cooling-device = > > <&cpu0 > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > <&cpu1 > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@ > > }; > > }; > > }; > > + > > + soc { > > + polling-delay-passive = <1000>; > > + polling-delay = <5000>; > > + thermal-sensors = <&tmu 1>; > > + > > + trips { > > + soc-alert { > > + temperature = <85000>; > > + hysteresis = <2000>; > > + type = "passive"; > > + }; > > + > > + soc-crit { > > + temperature = <95000>; > > + hysteresis = <2000>; > > + type = "critical"; > > + }; > > + }; > > + }; > > You should also add a cooling-maps section for this thermal zone given that it > has a passive trip type. Otherwise there is no use for a passive trip type. It is better to have a cooling device. But there is only one cooling device on this platform which is used by core-cluster. So there is no extra cooling device for it. This zone can take action when critical temp is reached. So it is still useful. What do you suggest? BR, Andy > > > }; > > > > timer { > > @@ -209,45 +229,49 @@ > > compatible = "fsl,qoriq-tmu"; > > reg = <0x0 0x1f80000 0x0 0x10000>; > > interrupts = <0 23 0x4>; > > - fsl,tmu-range = <0xb0000 0x9002a 0x6004c > 0x30062>; > > + fsl,tmu-range = <0xb0000 0x9002a 0x6004c > > + 0x70062>; > > fsl,tmu-calibration = > > /* Calibration data group 1 */ > > - <0x00000000 0x00000026 > > - 0x00000001 0x0000002d > > - 0x00000002 0x00000032 > > - 0x00000003 0x00000039 > > - 0x00000004 0x0000003f > > - 0x00000005 0x00000046 > > - 0x00000006 0x0000004d > > - 0x00000007 0x00000054 > > - 0x00000008 0x0000005a > > - 0x00000009 0x00000061 > > - 0x0000000a 0x0000006a > > - 0x0000000b 0x00000071 > > + <0x00000000 0x00000023 > > + 0x00000001 0x0000002a > > + 0x00000002 0x00000030 > > + 0x00000003 0x00000037 > > + 0x00000004 0x0000003d > > + 0x00000005 0x00000044 > > + 0x00000006 0x0000004a > > + 0x00000007 0x00000051 > > + 0x00000008 0x00000057 > > + 0x00000009 0x0000005e > > + 0x0000000a 0x00000064 > > + 0x0000000b 0x0000006b > > /* Calibration data group 2 */ > > - 0x00010000 0x00000025 > > - 0x00010001 0x0000002c > > - 0x00010002 0x00000035 > > - 0x00010003 0x0000003d > > - 0x00010004 0x00000045 > > - 0x00010005 0x0000004e > > - 0x00010006 0x00000057 > > - 0x00010007 0x00000061 > > - 0x00010008 0x0000006b > > - 0x00010009 0x00000076 > > + 0x00010000 0x00000022 > > + 0x00010001 0x0000002a > > + 0x00010002 0x00000032 > > + 0x00010003 0x0000003a > > + 0x00010004 0x00000042 > > + 0x00010005 0x0000004a > > + 0x00010006 0x00000052 > > + 0x00010007 0x0000005a > > + 0x00010008 0x00000062 > > + 0x00010009 0x0000006a > > /* Calibration data group 3 */ > > - 0x00020000 0x00000029 > > - 0x00020001 0x00000033 > > - 0x00020002 0x0000003d > > - 0x00020003 0x00000049 > > - 0x00020004 0x00000056 > > - 0x00020005 0x00000061 > > - 0x00020006 0x0000006d > > + 0x00020000 0x00000021 > > + 0x00020001 0x0000002b > > + 0x00020002 0x00000035 > > + 0x00020003 0x00000040 > > + 0x00020004 0x0000004a > > + 0x00020005 0x00000054 > > + 0x00020006 0x0000005e > > /* Calibration data group 4 */ > > - 0x00030000 0x00000021 > > - 0x00030001 0x0000002a > > - 0x00030002 0x0000003c > > - 0x00030003 0x0000004e>; > > + 0x00030000 0x00000010 > > + 0x00030001 0x0000001c > > + 0x00030002 0x00000027 > > + 0x00030003 0x00000032 > > + 0x00030004 0x0000003e > > + 0x00030005 0x00000049 > > + 0x00030006 0x00000054 > > + 0x00030007 0x00000060>; > > little-endian; > > #thermal-sensor-cells = <1>; > > }; > > -- > > 2.17.1 > >
On Tue, Jun 30, 2020 at 10:58 AM Andy Tang <andy.tang@nxp.com> wrote: > > > > > -----Original Message----- > > From: Amit Kucheria <amit.kucheria@linaro.org> > > Sent: 2020年6月30日 13:12 > > To: Andy Tang <andy.tang@nxp.com> > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal zone > > support > > > > Caution: EXT Email > > > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > > > There are 2 thermal zones in ls1088a soc. Add the other thermal zone > > > node to enable it. > > > Also update the values in calibration table to make the temperatures > > > monitored more precise. > > > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > > --- > > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > > +++++++++++------- > > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > index 36a799554620..ccbbc23e6c85 100644 > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > @@ -129,19 +129,19 @@ > > > }; > > > > > > thermal-zones { > > > - cpu_thermal: cpu-thermal { > > > + core-cluster { > > > polling-delay-passive = <1000>; > > > polling-delay = <5000>; > > > thermal-sensors = <&tmu 0>; > > > > > > trips { > > > - cpu_alert: cpu-alert { > > > + core_cluster_alert: > > core-cluster-alert > > > + { > > > temperature = <85000>; > > > hysteresis = <2000>; > > > type = "passive"; > > > }; > > > > > > - cpu_crit: cpu-crit { > > > + core_cluster_crit: core-cluster-crit { > > > temperature = <95000>; > > > hysteresis = <2000>; > > > type = "critical"; @@ > > -150,7 > > > +150,7 @@ > > > > > > cooling-maps { > > > map0 { > > > - trip = <&cpu_alert>; > > > + trip = > > <&core_cluster_alert>; > > > cooling-device = > > > <&cpu0 > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > > <&cpu1 > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@ > > > }; > > > }; > > > }; > > > + > > > + soc { > > > + polling-delay-passive = <1000>; > > > + polling-delay = <5000>; > > > + thermal-sensors = <&tmu 1>; > > > + > > > + trips { > > > + soc-alert { > > > + temperature = <85000>; > > > + hysteresis = <2000>; > > > + type = "passive"; > > > + }; > > > + > > > + soc-crit { > > > + temperature = <95000>; > > > + hysteresis = <2000>; > > > + type = "critical"; > > > + }; > > > + }; > > > + }; > > > > You should also add a cooling-maps section for this thermal zone given that it > > has a passive trip type. Otherwise there is no use for a passive trip type. > It is better to have a cooling device. But there is only one cooling device on this platform > which is used by core-cluster. So there is no extra cooling device for it. > This zone can take action when critical temp is reached. So it is still useful. > What do you suggest? If the action taken by the core-cluster cooling-maps is the only one that can be taken, I suggest getting rid of the the soc-alert passive trip completely. It is not of any use. If there is a chance that your soc thermal-zone can heat up before your cpu-cluster zone (unlikely), you could use the same cooling device (cpu0, cpu1) for soc thermal zone too.
> -----Original Message----- > From: Amit Kucheria <amit.kucheria@linaro.org> > Sent: 2020年6月30日 13:37 > To: Andy Tang <andy.tang@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > zone support > > Caution: EXT Email > > On Tue, Jun 30, 2020 at 10:58 AM Andy Tang <andy.tang@nxp.com> wrote: > > > > > > > > > -----Original Message----- > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > Sent: 2020年6月30日 13:12 > > > To: Andy Tang <andy.tang@nxp.com> > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; > > > Rob Herring <robh+dt@kernel.org>; lakml > > > <linux-arm-kernel@lists.infradead.org>; > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > > > zone support > > > > > > Caution: EXT Email > > > > > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > > > > > There are 2 thermal zones in ls1088a soc. Add the other thermal > > > > zone node to enable it. > > > > Also update the values in calibration table to make the > > > > temperatures monitored more precise. > > > > > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > > > --- > > > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > > > +++++++++++------- > > > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > index 36a799554620..ccbbc23e6c85 100644 > > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > @@ -129,19 +129,19 @@ > > > > }; > > > > > > > > thermal-zones { > > > > - cpu_thermal: cpu-thermal { > > > > + core-cluster { > > > > polling-delay-passive = <1000>; > > > > polling-delay = <5000>; > > > > thermal-sensors = <&tmu 0>; > > > > > > > > trips { > > > > - cpu_alert: cpu-alert { > > > > + core_cluster_alert: > > > core-cluster-alert > > > > + { > > > > temperature = > <85000>; > > > > hysteresis = <2000>; > > > > type = "passive"; > > > > }; > > > > > > > > - cpu_crit: cpu-crit { > > > > + core_cluster_crit: > > > > + core-cluster-crit { > > > > temperature = > <95000>; > > > > hysteresis = <2000>; > > > > type = "critical"; @@ > > > -150,7 > > > > +150,7 @@ > > > > > > > > cooling-maps { > > > > map0 { > > > > - trip = <&cpu_alert>; > > > > + trip = > > > <&core_cluster_alert>; > > > > cooling-device = > > > > <&cpu0 > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > > > <&cpu1 > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@ > > > > }; > > > > }; > > > > }; > > > > + > > > > + soc { > > > > + polling-delay-passive = <1000>; > > > > + polling-delay = <5000>; > > > > + thermal-sensors = <&tmu 1>; > > > > + > > > > + trips { > > > > + soc-alert { > > > > + temperature = > <85000>; > > > > + hysteresis = <2000>; > > > > + type = "passive"; > > > > + }; > > > > + > > > > + soc-crit { > > > > + temperature = > <95000>; > > > > + hysteresis = <2000>; > > > > + type = "critical"; > > > > + }; > > > > + }; > > > > + }; > > > > > > You should also add a cooling-maps section for this thermal zone > > > given that it has a passive trip type. Otherwise there is no use for a > passive trip type. > > It is better to have a cooling device. But there is only one cooling > > device on this platform which is used by core-cluster. So there is no extra > cooling device for it. > > This zone can take action when critical temp is reached. So it is still useful. > > What do you suggest? > > If the action taken by the core-cluster cooling-maps is the only one that can > be taken, I suggest getting rid of the the soc-alert passive trip completely. It is > not of any use. > > If there is a chance that your soc thermal-zone can heat up before your > cpu-cluster zone (unlikely), you could use the same cooling device (cpu0, cpu1) > for soc thermal zone too. Thanks for your suggestion. I was told that a cooling-maps can not be applied to more than one thermal zone. So the only option is to remove the alert trip. BR, Andy
On Tue, Jun 30, 2020 at 12:07 PM Andy Tang <andy.tang@nxp.com> wrote: > > > > > -----Original Message----- > > From: Amit Kucheria <amit.kucheria@linaro.org> > > Sent: 2020年6月30日 13:37 > > To: Andy Tang <andy.tang@nxp.com> > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > > zone support > > > > Caution: EXT Email > > > > On Tue, Jun 30, 2020 at 10:58 AM Andy Tang <andy.tang@nxp.com> wrote: > > > > > > > > > > > > > -----Original Message----- > > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > > Sent: 2020年6月30日 13:12 > > > > To: Andy Tang <andy.tang@nxp.com> > > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; > > > > Rob Herring <robh+dt@kernel.org>; lakml > > > > <linux-arm-kernel@lists.infradead.org>; > > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > > > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > > > > zone support > > > > > > > > Caution: EXT Email > > > > > > > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > > > > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > > > > > > > There are 2 thermal zones in ls1088a soc. Add the other thermal > > > > > zone node to enable it. > > > > > Also update the values in calibration table to make the > > > > > temperatures monitored more precise. > > > > > > > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > > > > --- > > > > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > > > > +++++++++++------- > > > > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > > > > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > index 36a799554620..ccbbc23e6c85 100644 > > > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > @@ -129,19 +129,19 @@ > > > > > }; > > > > > > > > > > thermal-zones { > > > > > - cpu_thermal: cpu-thermal { > > > > > + core-cluster { > > > > > polling-delay-passive = <1000>; > > > > > polling-delay = <5000>; > > > > > thermal-sensors = <&tmu 0>; > > > > > > > > > > trips { > > > > > - cpu_alert: cpu-alert { > > > > > + core_cluster_alert: > > > > core-cluster-alert > > > > > + { > > > > > temperature = > > <85000>; > > > > > hysteresis = <2000>; > > > > > type = "passive"; > > > > > }; > > > > > > > > > > - cpu_crit: cpu-crit { > > > > > + core_cluster_crit: > > > > > + core-cluster-crit { > > > > > temperature = > > <95000>; > > > > > hysteresis = <2000>; > > > > > type = "critical"; @@ > > > > -150,7 > > > > > +150,7 @@ > > > > > > > > > > cooling-maps { > > > > > map0 { > > > > > - trip = <&cpu_alert>; > > > > > + trip = > > > > <&core_cluster_alert>; > > > > > cooling-device = > > > > > <&cpu0 > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > > > > <&cpu1 > > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@ > > > > > }; > > > > > }; > > > > > }; > > > > > + > > > > > + soc { > > > > > + polling-delay-passive = <1000>; > > > > > + polling-delay = <5000>; > > > > > + thermal-sensors = <&tmu 1>; > > > > > + > > > > > + trips { > > > > > + soc-alert { > > > > > + temperature = > > <85000>; > > > > > + hysteresis = <2000>; > > > > > + type = "passive"; > > > > > + }; > > > > > + > > > > > + soc-crit { > > > > > + temperature = > > <95000>; > > > > > + hysteresis = <2000>; > > > > > + type = "critical"; > > > > > + }; > > > > > + }; > > > > > + }; > > > > > > > > You should also add a cooling-maps section for this thermal zone > > > > given that it has a passive trip type. Otherwise there is no use for a > > passive trip type. > > > It is better to have a cooling device. But there is only one cooling > > > device on this platform which is used by core-cluster. So there is no extra > > cooling device for it. > > > This zone can take action when critical temp is reached. So it is still useful. > > > What do you suggest? > > > > If the action taken by the core-cluster cooling-maps is the only one that can > > be taken, I suggest getting rid of the the soc-alert passive trip completely. It is > > not of any use. > > > > If there is a chance that your soc thermal-zone can heat up before your > > cpu-cluster zone (unlikely), you could use the same cooling device (cpu0, cpu1) > > for soc thermal zone too. > Thanks for your suggestion. > I was told that a cooling-maps can not be applied to more than one thermal zone. > So the only option is to remove the alert trip. The cooling-map is unique to the thermal-zone. But the cooling devices may be reused. See arch/arm64/boot/dts/qcom/sdm845.dtsi for an example. So, in your case, you would have a cooling-map section that ties the soc-alert trip to the same cooling devices as in cpu-cluster cooling map.
> -----Original Message----- > From: Amit Kucheria <amit.kucheria@linaro.org> > Sent: 2020年6月30日 14:47 > To: Andy Tang <andy.tang@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > zone support > > Caution: EXT Email > > On Tue, Jun 30, 2020 at 12:07 PM Andy Tang <andy.tang@nxp.com> wrote: > > > > > > > > > -----Original Message----- > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > Sent: 2020年6月30日 13:37 > > > To: Andy Tang <andy.tang@nxp.com> > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; > > > Rob Herring <robh+dt@kernel.org>; lakml > > > <linux-arm-kernel@lists.infradead.org>; > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more > > > thermal zone support > > > > > > Caution: EXT Email > > > > > > On Tue, Jun 30, 2020 at 10:58 AM Andy Tang <andy.tang@nxp.com> > wrote: > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > > > Sent: 2020年6月30日 13:12 > > > > > To: Andy Tang <andy.tang@nxp.com> > > > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li > > > > > <leoyang.li@nxp.com>; Rob Herring <robh+dt@kernel.org>; lakml > > > > > <linux-arm-kernel@lists.infradead.org>; > > > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > > > <devicetree@vger.kernel.org>; LKML > > > > > <linux-kernel@vger.kernel.org> > > > > > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more > > > > > thermal zone support > > > > > > > > > > Caution: EXT Email > > > > > > > > > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > > > > > > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > > > > > > > > > There are 2 thermal zones in ls1088a soc. Add the other > > > > > > thermal zone node to enable it. > > > > > > Also update the values in calibration table to make the > > > > > > temperatures monitored more precise. > > > > > > > > > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > > > > > --- > > > > > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > > > > > +++++++++++------- > > > > > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > > > > > > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > index 36a799554620..ccbbc23e6c85 100644 > > > > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > @@ -129,19 +129,19 @@ > > > > > > }; > > > > > > > > > > > > thermal-zones { > > > > > > - cpu_thermal: cpu-thermal { > > > > > > + core-cluster { > > > > > > polling-delay-passive = <1000>; > > > > > > polling-delay = <5000>; > > > > > > thermal-sensors = <&tmu 0>; > > > > > > > > > > > > trips { > > > > > > - cpu_alert: cpu-alert { > > > > > > + core_cluster_alert: > > > > > core-cluster-alert > > > > > > + { > > > > > > temperature = > > > <85000>; > > > > > > hysteresis = > <2000>; > > > > > > type = "passive"; > > > > > > }; > > > > > > > > > > > > - cpu_crit: cpu-crit { > > > > > > + core_cluster_crit: > > > > > > + core-cluster-crit { > > > > > > temperature = > > > <95000>; > > > > > > hysteresis = > <2000>; > > > > > > type = "critical"; > @@ > > > > > -150,7 > > > > > > +150,7 @@ > > > > > > > > > > > > cooling-maps { > > > > > > map0 { > > > > > > - trip = > <&cpu_alert>; > > > > > > + trip = > > > > > <&core_cluster_alert>; > > > > > > cooling-device = > > > > > > <&cpu0 > > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > > > > > <&cpu1 > > > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 > @@ > > > > > > }; > > > > > > }; > > > > > > }; > > > > > > + > > > > > > + soc { > > > > > > + polling-delay-passive = <1000>; > > > > > > + polling-delay = <5000>; > > > > > > + thermal-sensors = <&tmu 1>; > > > > > > + > > > > > > + trips { > > > > > > + soc-alert { > > > > > > + temperature = > > > <85000>; > > > > > > + hysteresis = > <2000>; > > > > > > + type = "passive"; > > > > > > + }; > > > > > > + > > > > > > + soc-crit { > > > > > > + temperature = > > > <95000>; > > > > > > + hysteresis = > <2000>; > > > > > > + type = "critical"; > > > > > > + }; > > > > > > + }; > > > > > > + }; > > > > > > > > > > You should also add a cooling-maps section for this thermal zone > > > > > given that it has a passive trip type. Otherwise there is no use > > > > > for a > > > passive trip type. > > > > It is better to have a cooling device. But there is only one > > > > cooling device on this platform which is used by core-cluster. So > > > > there is no extra > > > cooling device for it. > > > > This zone can take action when critical temp is reached. So it is still > useful. > > > > What do you suggest? > > > > > > If the action taken by the core-cluster cooling-maps is the only one > > > that can be taken, I suggest getting rid of the the soc-alert > > > passive trip completely. It is not of any use. > > > > > > If there is a chance that your soc thermal-zone can heat up before > > > your cpu-cluster zone (unlikely), you could use the same cooling > > > device (cpu0, cpu1) for soc thermal zone too. > > Thanks for your suggestion. > > I was told that a cooling-maps can not be applied to more than one thermal > zone. > > So the only option is to remove the alert trip. > > The cooling-map is unique to the thermal-zone. But the cooling devices may > be reused. > > See arch/arm64/boot/dts/qcom/sdm845.dtsi for an example. > > So, in your case, you would have a cooling-map section that ties the soc-alert > trip to the same cooling devices as in cpu-cluster cooling map. Got it. Thanks, BR, Andy
Hi Shawn, Do you think it is ok if the cooling devices are shared between thermal zones? BR, Andy > -----Original Message----- > From: Amit Kucheria <amit.kucheria@linaro.org> > Sent: 2020年6月30日 14:47 > To: Andy Tang <andy.tang@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; Rob > Herring <robh+dt@kernel.org>; lakml <linux-arm-kernel@lists.infradead.org>; > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal > zone support > > Caution: EXT Email > > On Tue, Jun 30, 2020 at 12:07 PM Andy Tang <andy.tang@nxp.com> wrote: > > > > > > > > > -----Original Message----- > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > Sent: 2020年6月30日 13:37 > > > To: Andy Tang <andy.tang@nxp.com> > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <leoyang.li@nxp.com>; > > > Rob Herring <robh+dt@kernel.org>; lakml > > > <linux-arm-kernel@lists.infradead.org>; > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > <devicetree@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org> > > > Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more > > > thermal zone support > > > > > > Caution: EXT Email > > > > > > On Tue, Jun 30, 2020 at 10:58 AM Andy Tang <andy.tang@nxp.com> > wrote: > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Amit Kucheria <amit.kucheria@linaro.org> > > > > > Sent: 2020年6月30日 13:12 > > > > > To: Andy Tang <andy.tang@nxp.com> > > > > > Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li > > > > > <leoyang.li@nxp.com>; Rob Herring <robh+dt@kernel.org>; lakml > > > > > <linux-arm-kernel@lists.infradead.org>; > > > > > open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > > > > > <devicetree@vger.kernel.org>; LKML > > > > > <linux-kernel@vger.kernel.org> > > > > > Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more > > > > > thermal zone support > > > > > > > > > > Caution: EXT Email > > > > > > > > > > On Tue, Jun 30, 2020 at 8:56 AM <andy.tang@nxp.com> wrote: > > > > > > > > > > > > From: Yuantian Tang <andy.tang@nxp.com> > > > > > > > > > > > > There are 2 thermal zones in ls1088a soc. Add the other > > > > > > thermal zone node to enable it. > > > > > > Also update the values in calibration table to make the > > > > > > temperatures monitored more precise. > > > > > > > > > > > > Signed-off-by: Yuantian Tang <andy.tang@nxp.com> > > > > > > --- > > > > > > .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100 > > > > > > +++++++++++------- > > > > > > 1 file changed, 62 insertions(+), 38 deletions(-) > > > > > > > > > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > index 36a799554620..ccbbc23e6c85 100644 > > > > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > > > > > > @@ -129,19 +129,19 @@ > > > > > > }; > > > > > > > > > > > > thermal-zones { > > > > > > - cpu_thermal: cpu-thermal { > > > > > > + core-cluster { > > > > > > polling-delay-passive = <1000>; > > > > > > polling-delay = <5000>; > > > > > > thermal-sensors = <&tmu 0>; > > > > > > > > > > > > trips { > > > > > > - cpu_alert: cpu-alert { > > > > > > + core_cluster_alert: > > > > > core-cluster-alert > > > > > > + { > > > > > > temperature = > > > <85000>; > > > > > > hysteresis = > <2000>; > > > > > > type = "passive"; > > > > > > }; > > > > > > > > > > > > - cpu_crit: cpu-crit { > > > > > > + core_cluster_crit: > > > > > > + core-cluster-crit { > > > > > > temperature = > > > <95000>; > > > > > > hysteresis = > <2000>; > > > > > > type = "critical"; > @@ > > > > > -150,7 > > > > > > +150,7 @@ > > > > > > > > > > > > cooling-maps { > > > > > > map0 { > > > > > > - trip = > <&cpu_alert>; > > > > > > + trip = > > > > > <&core_cluster_alert>; > > > > > > cooling-device = > > > > > > <&cpu0 > > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > > > > > <&cpu1 > > > > > > THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 > @@ > > > > > > }; > > > > > > }; > > > > > > }; > > > > > > + > > > > > > + soc { > > > > > > + polling-delay-passive = <1000>; > > > > > > + polling-delay = <5000>; > > > > > > + thermal-sensors = <&tmu 1>; > > > > > > + > > > > > > + trips { > > > > > > + soc-alert { > > > > > > + temperature = > > > <85000>; > > > > > > + hysteresis = > <2000>; > > > > > > + type = "passive"; > > > > > > + }; > > > > > > + > > > > > > + soc-crit { > > > > > > + temperature = > > > <95000>; > > > > > > + hysteresis = > <2000>; > > > > > > + type = "critical"; > > > > > > + }; > > > > > > + }; > > > > > > + }; > > > > > > > > > > You should also add a cooling-maps section for this thermal zone > > > > > given that it has a passive trip type. Otherwise there is no use > > > > > for a > > > passive trip type. > > > > It is better to have a cooling device. But there is only one > > > > cooling device on this platform which is used by core-cluster. So > > > > there is no extra > > > cooling device for it. > > > > This zone can take action when critical temp is reached. So it is still > useful. > > > > What do you suggest? > > > > > > If the action taken by the core-cluster cooling-maps is the only one > > > that can be taken, I suggest getting rid of the the soc-alert > > > passive trip completely. It is not of any use. > > > > > > If there is a chance that your soc thermal-zone can heat up before > > > your cpu-cluster zone (unlikely), you could use the same cooling > > > device (cpu0, cpu1) for soc thermal zone too. > > Thanks for your suggestion. > > I was told that a cooling-maps can not be applied to more than one thermal > zone. > > So the only option is to remove the alert trip. > > The cooling-map is unique to the thermal-zone. But the cooling devices may > be reused. > > See arch/arm64/boot/dts/qcom/sdm845.dtsi for an example. > > So, in your case, you would have a cooling-map section that ties the soc-alert > trip to the same cooling devices as in cpu-cluster cooling map.
On Thu, Jul 02, 2020 at 03:33:59AM +0000, Andy Tang wrote: > Hi Shawn, > > Do you think it is ok if the cooling devices are shared between thermal zones? Yeah, Amit has the authority on thermal support, so follow his suggestion, I would say :) Shawn
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi index 36a799554620..ccbbc23e6c85 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi @@ -129,19 +129,19 @@ }; thermal-zones { - cpu_thermal: cpu-thermal { + core-cluster { polling-delay-passive = <1000>; polling-delay = <5000>; thermal-sensors = <&tmu 0>; trips { - cpu_alert: cpu-alert { + core_cluster_alert: core-cluster-alert { temperature = <85000>; hysteresis = <2000>; type = "passive"; }; - cpu_crit: cpu-crit { + core_cluster_crit: core-cluster-crit { temperature = <95000>; hysteresis = <2000>; type = "critical"; @@ -150,7 +150,7 @@ cooling-maps { map0 { - trip = <&cpu_alert>; + trip = <&core_cluster_alert>; cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@ }; }; }; + + soc { + polling-delay-passive = <1000>; + polling-delay = <5000>; + thermal-sensors = <&tmu 1>; + + trips { + soc-alert { + temperature = <85000>; + hysteresis = <2000>; + type = "passive"; + }; + + soc-crit { + temperature = <95000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + }; }; timer { @@ -209,45 +229,49 @@ compatible = "fsl,qoriq-tmu"; reg = <0x0 0x1f80000 0x0 0x10000>; interrupts = <0 23 0x4>; - fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; + fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>; fsl,tmu-calibration = /* Calibration data group 1 */ - <0x00000000 0x00000026 - 0x00000001 0x0000002d - 0x00000002 0x00000032 - 0x00000003 0x00000039 - 0x00000004 0x0000003f - 0x00000005 0x00000046 - 0x00000006 0x0000004d - 0x00000007 0x00000054 - 0x00000008 0x0000005a - 0x00000009 0x00000061 - 0x0000000a 0x0000006a - 0x0000000b 0x00000071 + <0x00000000 0x00000023 + 0x00000001 0x0000002a + 0x00000002 0x00000030 + 0x00000003 0x00000037 + 0x00000004 0x0000003d + 0x00000005 0x00000044 + 0x00000006 0x0000004a + 0x00000007 0x00000051 + 0x00000008 0x00000057 + 0x00000009 0x0000005e + 0x0000000a 0x00000064 + 0x0000000b 0x0000006b /* Calibration data group 2 */ - 0x00010000 0x00000025 - 0x00010001 0x0000002c - 0x00010002 0x00000035 - 0x00010003 0x0000003d - 0x00010004 0x00000045 - 0x00010005 0x0000004e - 0x00010006 0x00000057 - 0x00010007 0x00000061 - 0x00010008 0x0000006b - 0x00010009 0x00000076 + 0x00010000 0x00000022 + 0x00010001 0x0000002a + 0x00010002 0x00000032 + 0x00010003 0x0000003a + 0x00010004 0x00000042 + 0x00010005 0x0000004a + 0x00010006 0x00000052 + 0x00010007 0x0000005a + 0x00010008 0x00000062 + 0x00010009 0x0000006a /* Calibration data group 3 */ - 0x00020000 0x00000029 - 0x00020001 0x00000033 - 0x00020002 0x0000003d - 0x00020003 0x00000049 - 0x00020004 0x00000056 - 0x00020005 0x00000061 - 0x00020006 0x0000006d + 0x00020000 0x00000021 + 0x00020001 0x0000002b + 0x00020002 0x00000035 + 0x00020003 0x00000040 + 0x00020004 0x0000004a + 0x00020005 0x00000054 + 0x00020006 0x0000005e /* Calibration data group 4 */ - 0x00030000 0x00000021 - 0x00030001 0x0000002a - 0x00030002 0x0000003c - 0x00030003 0x0000004e>; + 0x00030000 0x00000010 + 0x00030001 0x0000001c + 0x00030002 0x00000027 + 0x00030003 0x00000032 + 0x00030004 0x0000003e + 0x00030005 0x00000049 + 0x00030006 0x00000054 + 0x00030007 0x00000060>; little-endian; #thermal-sensor-cells = <1>; };