Message ID | 1403856699-2140-5-git-send-email-mperttunen@nvidia.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Eduardo Valentin |
Headers | show |
On 06/27/2014 02:11 AM, Mikko Perttunen wrote: > This adds the soctherm thermal sensing and management unit to the > Tegra124 device tree along with the four thermal zones it exports. > diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi > + thermal-zones { > + cpu { > + polling-delay-passive = <0>; > + polling-delay = <0>; I think we should still define a polling delay so that if there's SW that doesn't support HW trip points/interrupts, it still knows how often it should reasonably check the sensor. Perhaps a delay of 0 is used to determine whether to use HW trip points vs polling (I haven't read patch 1 yet)? If so, I'd prefer not to do that. Rather, the driver should advertize its ability to provide HW trip points, and it would be up to the core to then make use of them. The DT should just describe the HW, not assume it can influence SW's choice of whether to use HW trip points. > + soctherm: soctherm@0,700e2000 { ... > + reset-names = "soctherm"; > + > + #thermal-sensor-cells = <1>; I don't see any real need for that blank line. If there was, there would probably be more blank lines in the big list of properties above. -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Inline. On 30/06/14 23:48, Stephen Warren wrote: > On 06/27/2014 02:11 AM, Mikko Perttunen wrote: >> This adds the soctherm thermal sensing and management unit to the >> Tegra124 device tree along with the four thermal zones it exports. > >> diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi > >> + thermal-zones { >> + cpu { >> + polling-delay-passive = <0>; >> + polling-delay = <0>; > > I think we should still define a polling delay so that if there's SW > that doesn't support HW trip points/interrupts, it still knows how often > it should reasonably check the sensor. > > Perhaps a delay of 0 is used to determine whether to use HW trip points > vs polling (I haven't read patch 1 yet)? If so, I'd prefer not to do > that. Rather, the driver should advertize its ability to provide HW trip > points, and it would be up to the core to then make use of them. The DT > should just describe the HW, not assume it can influence SW's choice of > whether to use HW trip points. Yes, a delay of 0 disables polling in the thermal core. (The hw trip code doesn't do anything with it) One way to fix this would be to export a rate changing function in the thermal core and have of-thermal set the polling rate to 0 or the value from device tree depending on if hw trip point programming succeeded or not. This would also be good for error handling, since if hw trip poing programming failed for whatever reason, we could still fall back to polling. > >> + soctherm: soctherm@0,700e2000 { > ... >> + reset-names = "soctherm"; >> + >> + #thermal-sensor-cells = <1>; > > I don't see any real need for that blank line. If there was, there would > probably be more blank lines in the big list of properties above. > The reasoning was that #thermal-sensor-cells as a cells-property is a bit different from the rest, so separate them. But I can remove the blank line just as well. -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 6/27/2014 1:11 AM, Mikko Perttunen wrote: > This adds the soctherm thermal sensing and management unit to the > Tegra124 device tree along with the four thermal zones it exports. Mikko, soctherm doesn't "export thermal zones". I would rewrite your desription like this: Extend the Tegra124 device tree by adding the soctherm thermal sensing and management unit and by defining four thermal zones -- one for each temperature sensor in soctherm. System integrators have some flexibility in deciding how many thermal zones to define for their platform. For example, an integrator could define a single zone for the entire Tegra chip (giving a simple system at runtime) or with multiple zones (giving potentially higher performance near thermal limits). That's why I don't like the implication that soctherm dictates the existence of particular thermal zones. -Matt -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi index d675186..853627f 100644 --- a/arch/arm/boot/dts/tegra124.dtsi +++ b/arch/arm/boot/dts/tegra124.dtsi @@ -2,6 +2,7 @@ #include <dt-bindings/gpio/tegra-gpio.h> #include <dt-bindings/pinctrl/pinctrl-tegra.h> #include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/thermal/tegra124-soctherm.h> #include "skeleton.dtsi" @@ -724,6 +725,53 @@ status = "disabled"; }; + thermal-zones { + cpu { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = + <&soctherm TEGRA124_SOCTHERM_SENSOR_CPU>; + }; + + mem { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = + <&soctherm TEGRA124_SOCTHERM_SENSOR_MEM>; + }; + + gpu { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = + <&soctherm TEGRA124_SOCTHERM_SENSOR_GPU>; + }; + + pllx { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = + <&soctherm TEGRA124_SOCTHERM_SENSOR_PLLX>; + }; + }; + + soctherm: soctherm@0,700e2000 { + compatible = "nvidia,tegra124-soctherm"; + reg = <0x0 0x700e2000 0x0 0x1000>; + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&tegra_car TEGRA124_CLK_TSENSOR>, + <&tegra_car TEGRA124_CLK_SOC_THERM>; + clock-names = "tsensor", "soctherm"; + resets = <&tegra_car 78>; + reset-names = "soctherm"; + + #thermal-sensor-cells = <1>; + }; + cpus { #address-cells = <1>; #size-cells = <0>;
This adds the soctherm thermal sensing and management unit to the Tegra124 device tree along with the four thermal zones it exports. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> --- arch/arm/boot/dts/tegra124.dtsi | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)