Thread (41 messages) 41 messages, 5 authors, 2014-11-18
STALE4132d

[PATCH 00/21] thermal: exynos: Thermal code rework to use device tree

From: Lukasz Majewski <hidden>
Date: 2014-10-23 08:50:04
Also in: linux-pm, linux-samsung-soc

Hi Lukasz,
1. Introduction

Following patches aim to clean up the current implementation of the
thermal framework on Exynos devices.

The main goal was to use a generic code for reading thermal
configuration (of-thermal.c). Due to that redundant
exynos_thermal_common.[h|c] files were removed.

Around 400 lines of code (LOC) were removed directly by this patch,
which is around 20% of the Exynos thermal code base.

This work should NOT bring any functional changes to Exynos thermal 
subsystem.

2. Patch-set structure

This series starts with extending current of-thermal.c implementation
with exporting information about trip points and support for setting
emulated temperature. Those changes were necessary to reuse this code
in Exynos.

Then the cpu_cooling functionality has been preserved to allow cooling
devices by reducing operating frequency. Definition of trip points and
cpufreq's cooling properties were moved to device tree.

Then the rework of the way in which configuration data is provided to
the Exynos thermal subsystem was performed. Now device tree is used
for configuration.

Patch series end with removing exynos5250/exynos3250 TMU compatibles.
Both SoCs have thermal management unit (TMU) compatible with the one
first introduced at Exynos4412.

3. Dead code removal

Thermal support for some SoCs, previously available in the
exynos_tmu_data.c file, was removed since, as of 3.17-rc6, they
didn't have TMU bindings.

Moreover, support for cpu_cooling devices was preserved only on those
SoCs which had available and working cpufreq driver.

4. Testing

Test devices:
- Exynos4210 - Trats (TMU zone + cpu_cooling)
- Exynos4412 - Trats2/Odroid U3 (TMU zone + cpu_cooling)
- Exynos5250 - Arndale (TMU zone + cpu_cooling)
- Exynos5420 - Arndale-octa (only TMU zones)

Unfortunately, I don't posses Exynos5440 for testing. Its
functionality has been preserved in the code, but not tested on the
hardware. I would be grateful for help in testing.

5. Prerequisites:

This work requires following patches developed by Bartlomiej
Zolnierkiewicz:

5.1. [PATCH v3] ARM: dts: add CPU nodes for Exynos4 SoCs
http://article.gmane.org/gmane.linux.kernel.samsung-soc/37946/match=patch+v3+arm+dts+add+cpu+nodes+exynos4+socs

5.2. First thermal clean up patch set (from patch 1 to 33):

[PATCH 00/33] thermal: exynos: convert the driver to use per-SoC type
operations
http://article.gmane.org/gmane.linux.kernel.samsung-soc/37642/match=patch+00+33+thermal+exynos+convert+driver+use+per+soc+type+operations
Any comments on this patch set (despite the ones from Chanwoo)?

I'm especially wondering if changes introduced to of-thermal.c file are
appropriate for mainline.
Lukasz Majewski (21):
  thermal: of: Extend of-thermal.c to provide number of trip points
  thermal: of: Extend of-thermal.c to provide check if trip point is
    enabled
  thermal: of: Extend of-thermal.c to provide number of non critical
    trip points
  thermal: of: Extend current of-thermal.c code to allow setting
    emulated temp
  thermal: exynos: cosmetic: Correct comment format
  thermal: exynos: Provide thermal_exynos.h file to be included in
    device tree files
  thermal: dts: trats: Enable TMU on the Exynos4210 trats device
  thermal: dts: exynos: Adding LD010 regulator node necessary for TMU
on Odroid U3 board
  thermal: dts: Provide bindings and enable TMU at Exynos4x12 devices
  thermal: cpu_cooling: dts: Define device tree bindings for Exynos
cpu cooling functionality
  thermal: cpu_cooling: Modify exynos thermal code to use device tree
    for cpu cooling configuration
  thermal: exynos: dts: Add default definition for the TMU sensor
  thermal: dts: Default trip points definition for Exynos5420 SoCs
  thermal: exynos: dts: Define default thermal-zones for Exynos4
  thermal: dts: exynos: Trip points and sensor configuration data for
    Exynos5440
  thermal: exynos: dts: Provide device tree bindings identical to one
in exynos_tmu_data.c
  thermal: samsung: core: Exynos TMU rework to use device tree for
    configuration
  thermal: exynos: Remove exynos_thermal_common.[c|h] files
  thermal: exynos: Remove exynos_tmu_data.c file
  thermal: exynos: Make Exynos5250 TMU compatible with Exynos4412
  thermal: exynos: Make Exynos3250 TMU compatible with Exynos4412

 arch/arm/boot/dts/exynos4-cpu-thermal.dtsi        |  52 +++
 arch/arm/boot/dts/exynos4.dtsi                    |   5 +
 arch/arm/boot/dts/exynos4210-trats.dts            |  19 +
 arch/arm/boot/dts/exynos4210.dtsi                 |  28 +-
 arch/arm/boot/dts/exynos4212.dtsi                 |   5 +-
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi   |  27 ++
 arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi |  24 ++
 arch/arm/boot/dts/exynos4412.dtsi                 |   5 +-
 arch/arm/boot/dts/exynos4x12.dtsi                 |  13 +
 arch/arm/boot/dts/exynos5250.dtsi                 |  29 +-
 arch/arm/boot/dts/exynos5420-trip-points.dtsi     |  35 ++
 arch/arm/boot/dts/exynos5420.dtsi                 |  33 ++
 arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi |  25 ++
 arch/arm/boot/dts/exynos5440-trip-points.dtsi     |  25 ++
 arch/arm/boot/dts/exynos5440.dtsi                 |  18 +
 drivers/cpufreq/exynos-cpufreq.c                  |  23 +-
 drivers/thermal/of-thermal.c                      |  52 ++-
 drivers/thermal/samsung/Makefile                  |   2 -
 drivers/thermal/samsung/exynos_thermal_common.c   | 430
----------------------
drivers/thermal/samsung/exynos_thermal_common.h   | 106 ------
drivers/thermal/samsung/exynos_tmu.c              | 283
+++++++------- drivers/thermal/samsung/exynos_tmu.h              |
79 +--- drivers/thermal/samsung/exynos_tmu_data.c         | 264
------------- drivers/thermal/thermal_core.h                    |  15
+ include/dt-bindings/thermal/thermal_exynos.h      |  40 ++
include/linux/thermal.h                           |   6 +- 26 files
changed, 623 insertions(+), 1020 deletions(-) create mode 100644
arch/arm/boot/dts/exynos4-cpu-thermal.dtsi create mode 100644
arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi create mode 100644
arch/arm/boot/dts/exynos5420-trip-points.dtsi create mode 100644
arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi create mode 100644
arch/arm/boot/dts/exynos5440-trip-points.dtsi delete mode 100644
drivers/thermal/samsung/exynos_thermal_common.c delete mode 100644
drivers/thermal/samsung/exynos_thermal_common.h delete mode 100644
drivers/thermal/samsung/exynos_tmu_data.c create mode 100644
include/dt-bindings/thermal/thermal_exynos.h

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help