RE: [PATCH] arm64: dts: nxp: ls208xa: add more thermal zone support
From: Andy Tang
Date: Tue Dec 18 2018 - 02:01:51 EST
Hi,
PING.
BR,
Andy
> -----Original Message-----
> From: Yuantian Tang <andy.tang@xxxxxxx>
> Sent: 2018年10月31日 12:48
> To: shawnguo@xxxxxxxxxx
> Cc: Leo Li <leoyang.li@xxxxxxx>; robh+dt@xxxxxxxxxx; mark.rutland@xxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; rui.zhang@xxxxxxxxx; daniel.lezcano@xxxxxxxxxx;
> Andy Tang <andy.tang@xxxxxxx>
> Subject: [PATCH] arm64: dts: nxp: ls208xa: add more thermal zone support
>
> Ls208xa has several thermal sensors. Add all the sensor id to dts to enable
> them.
>
> To make the dts cleaner, re-organize the nodes to split out the common part so
> that it can be shared with other SoCs.
>
> Signed-off-by: Yuantian Tang <andy.tang@xxxxxxx>
> ---
> arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 8 +-
> arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 8 +-
> arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 83 +++-----
> arch/arm64/boot/dts/freescale/fsl-tmu-map1.dtsi | 99 +++++++++
> arch/arm64/boot/dts/freescale/fsl-tmu-map2.dtsi | 99 +++++++++
> arch/arm64/boot/dts/freescale/fsl-tmu-map3.dtsi | 99 +++++++++
> arch/arm64/boot/dts/freescale/fsl-tmu.dtsi | 251
> +++++++++++++++++++++++
> 7 files changed, 591 insertions(+), 56 deletions(-) create mode 100644
> arch/arm64/boot/dts/freescale/fsl-tmu-map1.dtsi
> create mode 100644 arch/arm64/boot/dts/freescale/fsl-tmu-map2.dtsi
> create mode 100644 arch/arm64/boot/dts/freescale/fsl-tmu-map3.dtsi
> create mode 100644 arch/arm64/boot/dts/freescale/fsl-tmu.dtsi
>
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
> index f9c1d30..8f9788c 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
> @@ -12,7 +12,7 @@
> #include "fsl-ls208xa.dtsi"
>
> &cpu {
> - cpu0: cpu@0 {
> + cooling_map0: cpu0: cpu@0 {
> device_type = "cpu";
> compatible = "arm,cortex-a57";
> reg = <0x0>;
> @@ -32,7 +32,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu2: cpu@100 {
> + cooling_map1: cpu2: cpu@100 {
> device_type = "cpu";
> compatible = "arm,cortex-a57";
> reg = <0x100>;
> @@ -52,7 +52,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu4: cpu@200 {
> + cooling_map2: cpu4: cpu@200 {
> device_type = "cpu";
> compatible = "arm,cortex-a57";
> reg = <0x200>;
> @@ -72,7 +72,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu6: cpu@300 {
> + cooling_map3: cpu6: cpu@300 {
> device_type = "cpu";
> compatible = "arm,cortex-a57";
> reg = <0x300>;
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
> index 7c882da..013fe16 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
> @@ -12,7 +12,7 @@
> #include "fsl-ls208xa.dtsi"
>
> &cpu {
> - cpu0: cpu@0 {
> + cooling_map0: cpu0: cpu@0 {
> device_type = "cpu";
> compatible = "arm,cortex-a72";
> reg = <0x0>;
> @@ -32,7 +32,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu2: cpu@100 {
> + cooling_map1: cpu2: cpu@100 {
> device_type = "cpu";
> compatible = "arm,cortex-a72";
> reg = <0x100>;
> @@ -52,7 +52,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu4: cpu@200 {
> + cooling_map2: cpu4: cpu@200 {
> device_type = "cpu";
> compatible = "arm,cortex-a72";
> reg = <0x200>;
> @@ -72,7 +72,7 @@
> #cooling-cells = <2>;
> };
>
> - cpu6: cpu@300 {
> + cooling_map3: cpu6: cpu@300 {
> device_type = "cpu";
> compatible = "arm,cortex-a72";
> reg = <0x300>;
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
> index 8cb78dd..4102317 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
> @@ -75,54 +75,7 @@
> mask = <0x2>;
> };
>
> - thermal-zones {
> - cpu_thermal: cpu-thermal {
> - polling-delay-passive = <1000>;
> - polling-delay = <5000>;
> -
> - thermal-sensors = <&tmu 4>;
> -
> - trips {
> - cpu_alert: cpu-alert {
> - temperature = <75000>;
> - hysteresis = <2000>;
> - type = "passive";
> - };
> - cpu_crit: cpu-crit {
> - temperature = <85000>;
> - hysteresis = <2000>;
> - type = "critical";
> - };
> - };
> -
> - cooling-maps {
> - map0 {
> - trip = <&cpu_alert>;
> - cooling-device =
> - <&cpu0 THERMAL_NO_LIMIT
> - THERMAL_NO_LIMIT>;
> - };
> - map1 {
> - trip = <&cpu_alert>;
> - cooling-device =
> - <&cpu2 THERMAL_NO_LIMIT
> - THERMAL_NO_LIMIT>;
> - };
> - map2 {
> - trip = <&cpu_alert>;
> - cooling-device =
> - <&cpu4 THERMAL_NO_LIMIT
> - THERMAL_NO_LIMIT>;
> - };
> - map3 {
> - trip = <&cpu_alert>;
> - cooling-device =
> - <&cpu6 THERMAL_NO_LIMIT
> - THERMAL_NO_LIMIT>;
> - };
> - };
> - };
> - };
> + #include "fsl-tmu.dtsi"
>
> timer {
> compatible = "arm,armv8-timer";
> @@ -692,6 +645,7 @@
> <0000 0 0 4 &gic 0 0 0 127 4>;
> };
>
> +
> sata0: sata@3200000 {
> status = "disabled";
> compatible = "fsl,ls2080a-ahci";
> @@ -758,3 +712,36 @@
> };
> };
> };
> +
> +#include "fsl-tmu-map1.dtsi"
> +#include "fsl-tmu-map2.dtsi"
> +#include "fsl-tmu-map3.dtsi"
> +&thermal_zones {
> + thermal-zone1 {
> + status = "okay";
> + };
> +
> + thermal-zone2{
> + status = "okay";
> + };
> +
> + thermal-zone3{
> + status = "okay";
> + };
> +
> + thermal-zone4{
> + status = "okay";
> + };
> +
> + thermal-zone5{
> + status = "okay";
> + };
> +
> + thermal-zone6{
> + status = "okay";
> + };
> +
> + thermal-zone7 {
> + status = "okay";
> + };
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-tmu-map1.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-tmu-map1.dtsi
> new file mode 100644
> index 0000000..87e0d2e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-tmu-map1.dtsi
> @@ -0,0 +1,99 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree Include file for Thermal Monitor Unit.
> + *
> + * Copyright 2018 NXP
> + *
> + * Tang Yuantian <andy.tang@xxxxxxx>
> + *
> + */
> +
> +&thermal_zones {
> + thermal-zone0 {
> + cooling-maps {
> + map1 {
> + trip = <&alert0>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone1 {
> + cooling-maps {
> + map1 {
> + trip = <&alert1>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone2 {
> + cooling-maps {
> + map1 {
> + trip = <&alert2>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone3 {
> + cooling-maps {
> + map1 {
> + trip = <&alert3>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone4 {
> + cooling-maps {
> + map1 {
> + trip = <&alert4>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone5 {
> + cooling-maps {
> + map1 {
> + trip = <&alert5>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone6 {
> + cooling-maps {
> + map1 {
> + trip = <&alert6>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone7 {
> + cooling-maps {
> + map1 {
> + trip = <&alert7>;
> + cooling-device =
> + <&cooling_map1 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-tmu-map2.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-tmu-map2.dtsi
> new file mode 100644
> index 0000000..7e35073
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-tmu-map2.dtsi
> @@ -0,0 +1,99 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree Include file for Thermal Monitor Unit.
> + *
> + * Copyright 2018 NXP
> + *
> + * Tang Yuantian <andy.tang@xxxxxxx>
> + *
> + */
> +
> +&thermal_zones {
> + thermal-zone0 {
> + cooling-maps {
> + map2 {
> + trip = <&alert0>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone1 {
> + cooling-maps {
> + map2 {
> + trip = <&alert1>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone2 {
> + cooling-maps {
> + map2 {
> + trip = <&alert2>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone3 {
> + cooling-maps {
> + map2 {
> + trip = <&alert3>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone4 {
> + cooling-maps {
> + map2 {
> + trip = <&alert4>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone5 {
> + cooling-maps {
> + map2 {
> + trip = <&alert5>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone6 {
> + cooling-maps {
> + map2 {
> + trip = <&alert6>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone7 {
> + cooling-maps {
> + map2 {
> + trip = <&alert7>;
> + cooling-device =
> + <&cooling_map2 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-tmu-map3.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-tmu-map3.dtsi
> new file mode 100644
> index 0000000..dcde943
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-tmu-map3.dtsi
> @@ -0,0 +1,99 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree Include file for Thermal Monitor Unit.
> + *
> + * Copyright 2018 NXP
> + *
> + * Tang Yuantian <andy.tang@xxxxxxx>
> + *
> + */
> +
> +&thermal_zones {
> + thermal-zone0 {
> + cooling-maps {
> + map3 {
> + trip = <&alert0>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone1 {
> + cooling-maps {
> + map3 {
> + trip = <&alert1>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone2 {
> + cooling-maps {
> + map3 {
> + trip = <&alert2>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone3 {
> + cooling-maps {
> + map3 {
> + trip = <&alert3>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone4 {
> + cooling-maps {
> + map3 {
> + trip = <&alert4>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone5 {
> + cooling-maps {
> + map3 {
> + trip = <&alert5>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone6 {
> + cooling-maps {
> + map3 {
> + trip = <&alert6>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone7 {
> + cooling-maps {
> + map3 {
> + trip = <&alert7>;
> + cooling-device =
> + <&cooling_map3 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-tmu.dtsi
> b/arch/arm64/boot/dts/freescale/fsl-tmu.dtsi
> new file mode 100644
> index 0000000..133d2dc
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-tmu.dtsi
> @@ -0,0 +1,251 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree Include file for Thermal Monitor Unit.
> + *
> + * Copyright 2018 NXP
> + *
> + * Tang Yuantian <andy.tang@xxxxxxx>
> + *
> + */
> +
> +thermal_zones: thermal-zones {
> + thermal_zone0: thermal-zone0 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 0>;
> + status = "disabled";
> +
> + trips {
> + alert0: alert0 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit0: crit0 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert0>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone1 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 1>;
> + status = "disabled";
> +
> + trips {
> + alert1: alert1 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit1: crit1 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert1>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone2 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 2>;
> + status = "disabled";
> +
> + trips {
> + alert2: alert2 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit2: crit2 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert2>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone3 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 3>;
> + status = "disabled";
> +
> + trips {
> + alert3: alert3 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit3: crit3 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert3>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone4 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 4>;
> + status = "disabled";
> +
> + trips {
> + alert4: alert4 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit4: crit4 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert4>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone5 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 5>;
> + status = "disabled";
> +
> + trips {
> + alert5: alert5 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit5: crit5 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert5>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone6 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 6>;
> + status = "disabled";
> +
> + trips {
> + alert6: alert6 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit6: crit6 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert6>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +
> + thermal-zone7 {
> + polling-delay-passive = <1000>;
> + polling-delay = <5000>;
> + thermal-sensors = <&tmu 7>;
> + status = "disabled";
> +
> + trips {
> + alert7: alert7 {
> + temperature = <75000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> +
> + crit7: crit7 {
> + temperature = <85000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert7>;
> + cooling-device =
> + <&cooling_map0 THERMAL_NO_LIMIT
> + THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> +};
> --
> 1.7.1