1. 07 4月, 2017 2 次提交
    • S
      thermal: da9062/61: Thermal junction temperature monitoring driver · 608567aa
      Steve Twiss 提交于
      Add junction temperature monitoring supervisor device driver, compatible
      with the DA9062 and DA9061 PMICs. A MODULE_DEVICE_TABLE() macro is added.
      
      If the PMIC's internal junction temperature rises above T_WARN (125 degC)
      an interrupt is issued. This T_WARN level is defined as the
      THERMAL_TRIP_HOT trip-wire inside the device driver.
      
      The thermal triggering mechanism is interrupt based and happens when the
      temperature rises above a given threshold level. The component cannot
      return an exact temperature, it only has knowledge if the temperature is
      above or below a given threshold value. A status bit must be polled to
      detect when the temperature falls below that threshold level again. A
      kernel work queue is configured to repeatedly poll and detect when the
      temperature falls below this trip-wire, between 1 and 10 second intervals
      (defaulting at 3 seconds).
      
      This scheme is provided as an example. It would be expected that any
      final implementation will also include a notify() function and any of these
      settings could be altered to match the application where appropriate.
      
      When over-temperature is reached, the interrupt from the DA9061/2 will be
      repeatedly triggered. The IRQ is therefore disabled when the first
      over-temperature event happens and the status bit is polled using a
      work-queue until it becomes false.
      
      This strategy is designed to allow the periodic transmission of uevents
      (HOT trip point) as the first level of temperature supervision method. It
      is intended for non-invasive temperature control, where the necessary
      measures for cooling the system down are left to the host software. Once
      the temperature falls again, the IRQ is re-enabled so a new critical
      over-temperature event can be detected.
      Reviewed-by: NLukasz Luba <lukasz.luba@arm.com>
      Signed-off-by: NSteve Twiss <stwiss.opensource@diasemi.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      608567aa
    • R
      thermal: broadcom: add Northstar thermal driver · a94cb7ee
      Rafał Miłecki 提交于
      Northstar is a SoC family commonly used in home routers. This commit
      adds a driver for checking CPU temperature. As Northstar Plus seems to
      also have this IP block this new symbol gets ARCH_BCM_IPROC dependency.
      Signed-off-by: NRafał Miłecki <rafal@milecki.pl>
      Signed-off-by: NJon Mason <jon.mason@broadcom.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      a94cb7ee
  2. 02 4月, 2017 1 次提交
  3. 19 2月, 2017 1 次提交
  4. 20 1月, 2017 1 次提交
  5. 23 11月, 2016 2 次提交
  6. 27 9月, 2016 3 次提交
  7. 06 9月, 2016 1 次提交
  8. 17 5月, 2016 3 次提交
  9. 18 2月, 2016 1 次提交
  10. 31 10月, 2015 1 次提交
  11. 04 8月, 2015 1 次提交
  12. 04 6月, 2015 1 次提交
  13. 05 5月, 2015 2 次提交
    • J
      thermal: introduce the Power Allocator governor · 6b775e87
      Javi Merino 提交于
      The power allocator governor is a thermal governor that controls system
      and device power allocation to control temperature.  Conceptually, the
      implementation divides the sustainable power of a thermal zone among
      all the heat sources in that zone.
      
      This governor relies on "power actors", entities that represent heat
      sources.  They can report current and maximum power consumption and
      can set a given maximum power consumption, usually via a cooling
      device.
      
      The governor uses a Proportional Integral Derivative (PID) controller
      driven by the temperature of the thermal zone.  The output of the
      controller is a power budget that is then allocated to each power
      actor that can have bearing on the temperature we are trying to
      control.  It decides how much power to give each cooling device based
      on the performance they are requesting.  The PID controller ensures
      that the total power budget does not exceed the control temperature.
      
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Eduardo Valentin <edubezval@gmail.com>
      Signed-off-by: NPunit Agrawal <punit.agrawal@arm.com>
      Signed-off-by: NJavi Merino <javi.merino@arm.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      6b775e87
    • I
      thermal: Add QPNP PMIC temperature alarm driver · c610afaa
      Ivan T. Ivanov 提交于
      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 <collinsd@codeaurora.org>
      Signed-off-by: NIvan T. Ivanov <iivanov@mm-sol.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      c610afaa
  14. 01 5月, 2015 2 次提交
    • O
      thermal: intel Quark SoC X1000 DTS thermal driver · 8c187693
      Ong, Boon Leong 提交于
      In Intel Quark SoC X1000, there is one on-die digital temperature sensor(DTS).
      The DTS offers both hot & critical trip points.
      
      However, in current distribution of UEFI BIOS for Quark platform, only
      critical trip point is configured to be 105 degree Celsius (based on Quark
      SW ver1.0.1 and hot trip point is not used due to lack of IRQ.
      
      There is no active cooling device for Quark SoC, so Quark SoC thermal
      management logic expects Linux distro to orderly power-off when temperature
      of the DTS exceeds the configured critical trip point.
      
      Kernel param "polling_delay" in milliseconds is used to control the frequency
      the DTS temperature is read by thermal framework. It defaults to 2-second.
      To change it, use kernel boot param "intel_quark_dts_thermal.polling_delay=X".
      
      User interacts with Quark SoC DTS thermal driver through sysfs via:
      /sys/class/thermal/thermal_zone0/
      
      For example:
       - to read DTS temperature
         $ cat temp
       - to read critical trip point
         $ cat trip_point_0_temp
       - to read trip point type
         $ cat trip_point_0_type
       - to emulate temperature raise to test orderly shutdown by Linux distro
         $ echo 105 > emul_temp
      Tested-by: NBryan O'Donoghue <pure.logic@nexus-software.ie>
      Signed-off-by: NOng Boon Leong <boon.leong.ong@intel.com>
      Reviewed-by: NBryan O'Donoghue <pure.logic@nexus-software.ie>
      Reviewed-by: NKweh, Hock Leong <hock.leong.kweh@intel.com>
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      8c187693
    • S
      Thermal: Intel SoC: DTS thermal IOSF core · ee073604
      Srinivas Pandruvada 提交于
      This is becoming a common feature for Intel SoCs to expose the additional
      digital temperature sensors (DTSs) using side band interface (IOSF). This
      change remove common IOSF DTS handler function from the existing driver
      intel_soc_dts_thermal.c and creates a stand alone module, which can
      be selected from the SoC specific drivers. In this way there is less
      code duplication.
      Signed-off-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      ee073604
  15. 25 11月, 2014 1 次提交
  16. 20 11月, 2014 2 次提交
    • M
      thermal: Add Tegra SOCTHERM thermal management driver · 66fb8480
      Mikko Perttunen 提交于
      This adds support for the Tegra SOCTHERM thermal sensing and management
      system found in the Tegra124 system-on-chip. This initial driver supports
      temperature polling for four thermal zones.
      Signed-off-by: NMikko Perttunen <mperttunen@nvidia.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      66fb8480
    • E
      thermal: introduce clock cooling device · f9df89d8
      Eduardo Valentin 提交于
      This patch introduces a new thermal cooling device based on common clock
      framework. The original motivation to write this cooling device is to be
      able to cool down thermal zones using clocks that feed co-processors, such
      as GPUs, DSPs, Image Processing Co-processors, etc. But it is written
      in a way that it can be used on top of any clock.
      
      The implementation is pretty straight forward. The code creates
      a thermal cooling device based on a pair of a struct device and a clock name.
      The struct device is assumed to be usable by the OPP layer. The OPP layer
      is used as source of the list of possible frequencies. The (cpufreq) frequency
      table is then used as a map from frequencies to cooling states. Cooling
      states are indexes to the frequency table.
      
      The logic sits on top of common clock framework, specifically on clock
      pre notifications. Any PRE_RATE_CHANGE is hijacked, and the transition is
      only allowed when the new rate is within the thermal limit (cooling state -> freq).
      
      When a thermal cooling device state transition is requested, the clock
      is also checked to verify if the current clock rate is within the new
      thermal limit.
      
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NEduardo Valentin <eduardo.valentin@ti.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      f9df89d8
  17. 11 10月, 2014 1 次提交
  18. 10 10月, 2014 1 次提交
  19. 27 8月, 2014 1 次提交
    • P
      thermal: Added Bang-bang thermal governor · e4dbf98f
      Peter Feuerer 提交于
      The bang-bang thermal governor uses a hysteresis to switch abruptly on
      or off a cooling device.  It is intended to control fans, which can
      not be throttled but just switched on or off.
      Bang-bang cannot be set as default governor as it is intended for
      special devices only.  For those special devices the driver needs to
      explicitely request it.
      
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Andreas Mohr <andi@lisas.de>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Javi Merino <javi.merino@arm.com>
      Cc: linux-pm@vger.kernel.org
      Signed-off-by: NPeter Feuerer <peter@piie.net>
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      e4dbf98f
  20. 15 7月, 2014 1 次提交
  21. 15 5月, 2014 1 次提交
    • S
      thermal: Intel SoC DTS thermal · bc40b5e3
      Srinivas Pandruvada 提交于
      In the Intel SoCs like Bay Trail, there are 2 additional digital temperature
      sensors(DTS), in addition to the standard DTSs in the core. Also they support
      4 programmable thresholds, out of which two can be used by OSPM. These
      thresholds can be used by OSPM thermal control. Out of these two thresholds,
      one is used by driver and one user mode can change via thermal sysfs to get
      notifications on threshold violations.
      
      The driver defines one critical trip points, which is set to TJ MAX - offset.
      The offset can be changed via module parameter (default 5C). Also it uses
      one of the thresholds to get notification for this temperature violation.
      This is very important for orderly shutdown as the many of these devices don't
      have ACPI thermal zone, and expects that there is some other thermal control
      mechanism present in OSPM. When a Linux distro is used without additional
      specialized thermal control program, BIOS can do force shutdown when thermals
      are not under control. When temperature reaches critical, the Linux thermal
      core will initiate an orderly shutdown.
      Signed-off-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      bc40b5e3
  22. 02 1月, 2014 1 次提交
  23. 04 12月, 2013 1 次提交
    • E
      thermal: introduce device tree parser · 4e5e4705
      Eduardo Valentin 提交于
      This patch introduces a device tree bindings for
      describing the hardware thermal behavior and limits.
      Also a parser to read and interpret the data and feed
      it in the thermal framework is presented.
      
      This patch introduces a thermal data parser for device
      tree. The parsed data is used to build thermal zones
      and thermal binding parameters. The output data
      can then be used to deploy thermal policies.
      
      This patch adds also documentation regarding this
      API and how to define tree nodes to use
      this infrastructure.
      
      Note that, in order to be able to have control
      on the sensor registration on the DT thermal zone,
      it was required to allow changing the thermal zone
      .get_temp callback. For this reason, this patch
      also removes the 'const' modifier from the .ops
      field of thermal zone devices.
      
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NEduardo Valentin <eduardo.valentin@ti.com>
      4e5e4705
  24. 03 9月, 2013 1 次提交
    • E
      thermal: hwmon: move hwmon support to single file · 0dd88793
      Eduardo Valentin 提交于
      In order to improve code organization, this patch
      moves the hwmon sysfs support to a file named
      thermal_hwmon. This helps to add extra support
      for hwmon without scrambling the code.
      
      In order to do this move, the hwmon list head is now
      using its own locking. Before, the list used
      the global thermal locking. Also, some minor changes
      in the code were required, as recommended by checkpatch.pl.
      
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Acked-by: NDurgadoss R <durgadoss.r@intel.com>
      Signed-off-by: NEduardo Valentin <eduardo.valentin@ti.com>
      0dd88793
  25. 13 8月, 2013 2 次提交
  26. 18 6月, 2013 1 次提交
  27. 28 5月, 2013 1 次提交
    • E
      thermal: introduce TI SoC thermal driver · eb982001
      Eduardo Valentin 提交于
      This patch moves the ti-soc-thermal driver out of
      the staging tree to the thermal tree.
      
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Eduardo Valentin <eduardo.valentin@ti.com>
      Cc: J Keerthy <j-keerthy@ti.com>
      Cc: Radhesh Fadnis <radhesh.fadnis@ti.com>
      Cc: Cyril Roelandt <tipecaml@gmail.com>
      Cc: devicetree-discuss@lists.ozlabs.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: devel@driverdev.osuosl.org
      Cc: linux-pm@vger.kernel.org
      Signed-off-by: NEduardo Valentin <eduardo.valentin@ti.com>
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      eb982001
  28. 14 4月, 2013 3 次提交