On 24-06-2013 06:50, Amit Daniel Kachhap wrote: > Submitting V7 version with all comments fixed. Most of the patches are acked by > Eduardo. All the un-acked patches are modified according to the review comments. > If any comments please let me know. Applied on linux-soc-thermal branch for_3.12/exynos. It will be queued for next merge window. Too late for this one, sorry. > > Thanks, > Amit Daniel > > Changes in V7: > * Fixed all the coding guidelines comments given by Eduardo. > * Moved the request irq call below the core thermal registration as per discussion > with Eduardo. > * Appropriate logs/TODO's/comments added for some review comments which are still > same as before, > 1) calibration register setting still uses enums. > 2) very few soc check's still left in the driver. > 3) Cooling devices stored in an array in the exynos core thermal layer. > > Changes in V6: > * Uses ARCH_HAS_BANDGAP config flag which is merged now in arm tree. > (http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7758/1). > * In this version patches 1, 2, 3, 4 and 30 are modified. Others are same as V5. > * Added acked by from Jonghwa Lee. > * Rebased against Thermal Maintainer next tree. > > Changes in V5: > * Most of the changes in this version is as per suggestion from Jonghwa Lee. I > have retained one to one mapping of platform data with TMU instances as the > TMU's are different devices. In exynos5440 soc there is some register > sharing across multiple TMU's but in exynos5420 there is no register between > multiple TMU's, so the current implementation is useful to support both of the > above. > This patch uses localized ARCH_HAS_TMU Kconfig option and is a temporary solution > until a more generic macro ARCH_HAS_BANDGAP is introduced as per discussion in > the link https://patchwork.kernel.org/patch/2659001/. > * trip type is passed as platform data. > * HW trip is allowed only for maximum level. > * Platform data structure is now abstracted inside 1 more structure to support > multiple sensor TMU data. > > Changes in V4: > Almost all the changes in this version is as per suggestion from Eduardo.The > major ones are listed below, > * Added kconfig symbol ARCH_HAS_TMU which needs to be enabled by platform. With > this change existing symbol EXYNOS_TMU_DATA is not needed. > * Movement of freq_clip_table from exynos_tmu.h to exynos_thermal_common.h is > explained in the commit logs. > * Wrote all register description documentation. > * Split 5440 TMU support patch into controller change, configuration data and > feature addition patches. > * Remove all *LINUX_* in the header files. > * Still regulator enable is kept optional but a TODO: comment is added to fix > it later. > > Changes in V3: > * Added proper dependency of different exynos thermal Kconfig symbols. Basically 3 > Kconfig can be enabled now and corresponds to tmu driver. exynos common part > and exynos configuration data. This issue was raised by Rui Zhang. > > Changes in V2: > * Separated SOC data from TMU driver. This is as per suggestion from Eduardo. > * Merged the new file created for exynos5440 TMU controller with the existing > TMU controller code. > * Removed the DT parsing code as now the SOC specific data are cleanly put > inside the data specific file. > * Even the register definations/bitfields are treated as data as there is > some variation across SOC's. > > This patchset adds TMU(Thermal management Unit) driver support for > exynos5440 platform. There are 3 instances of the TMU controllers so > necessary cleanup/re-structure is done to handle multiple thermal zone. > > Patch (exynos4: Add documentation for Exynos SoC thermal bindings) from > Lukasz Majewski is already posted to mainline. Using it as it is needed. > (http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg17817.html) > > Patch (thermal: exynos: Support thermal tripping ) from Jonghwan Choi is > added here with some changes. > (https://patchwork.kernel.org/patch/1668371/) > > Patch (thermal: exynos: Support for TMU regulator defined at device tree) > is a repost of my earlier patch(https://patchwork-mail1.kernel.org/patch/2510771/) > and adds regulator support. > > Patch (ARM: dts: Add device tree node for exynos5440 TMU controller) and > patch (arm: exynos: enable ARCH_HAS_BANDGAP) can be merged through exynos platform > maintainer as this can cause merge conflict. > > All these patches are based on thermal maintainers git tree, > git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git next. > > Amit Daniel Kachhap (30): > thermal: exynos: Moving exynos thermal files into samsung directory > thermal: exynos: Use ARCH_HAS_BANDGAP config to know the supported > soc's > thermal: exynos: Remove un-necessary CPU_THERMAL dependency > thermal: exynos: Bifurcate exynos thermal common and tmu controller > code > thermal: exynos: Rename exynos_thermal.c to exynos_tmu.c > thermal: exynos: Move exynos_thermal.h from include/* to driver/* > folder > thermal: exynos: Bifurcate exynos tmu driver and configuration data > thermal: exynos: Add missing definations and code cleanup > thermal: exynos: Add extra entries in the tmu platform data > thermal: exynos: Move register definitions from driver to data file > thermal: exynos: Support thermal tripping > thermal: exynos: Fix to clear only the generated interrupts > thermal: exynos: Add support for instance based register/unregister > thermal: exynos: Modify private_data to appropriate name driver_data > thermal: exynos: Return success even if no cooling data supplied > thermal: exynos: Make the zone handling use trip information > thermal: exynos: Remove non DT based support > thermal: exynos: Add support to handle many instances of TMU > thermal: exynos: Add TMU features to check instead of using SOC type > thermal: exynos: use device resource management infrastructure > thermal: exynos: Add support to access common register for > multistance > thermal: exynos: Add driver support for exynos5440 TMU sensor > thermal: exynos: Add thermal configuration data for exynos5440 TMU > sensor > thermal: exynos: Fix to set the second point correction value > thermal: exynos: Add hardware mode thermal calibration support > thermal: exynos: Support for TMU regulator defined at device tree > ARM: dts: thermal: exynos: Add documentation for Exynos SoC thermal > bindings > Documentation: thermal: Explain the exynos thermal driver model > ARM: dts: Add device tree node for exynos5440 TMU controller > arm: exynos: enable ARCH_HAS_BANDGAP > > .../devicetree/bindings/thermal/exynos-thermal.txt | 55 + > Documentation/thermal/exynos_thermal | 43 +- > arch/arm/boot/dts/exynos5440.dtsi | 30 + > arch/arm/mach-exynos/Kconfig | 5 + > drivers/thermal/Kconfig | 13 +- > drivers/thermal/Makefile | 2 +- > drivers/thermal/exynos_thermal.c | 1058 -------------------- > drivers/thermal/samsung/Kconfig | 18 + > drivers/thermal/samsung/Makefile | 7 + > drivers/thermal/samsung/exynos_thermal_common.c | 432 ++++++++ > drivers/thermal/samsung/exynos_thermal_common.h | 107 ++ > drivers/thermal/samsung/exynos_tmu.c | 752 ++++++++++++++ > drivers/thermal/samsung/exynos_tmu.h | 309 ++++++ > drivers/thermal/samsung/exynos_tmu_data.c | 250 +++++ > drivers/thermal/samsung/exynos_tmu_data.h | 155 +++ > include/linux/platform_data/exynos_thermal.h | 119 --- > 16 files changed, 2160 insertions(+), 1195 deletions(-) > create mode 100644 Documentation/devicetree/bindings/thermal/exynos-thermal.txt > delete mode 100644 drivers/thermal/exynos_thermal.c > create mode 100644 drivers/thermal/samsung/Kconfig > create mode 100644 drivers/thermal/samsung/Makefile > create mode 100644 drivers/thermal/samsung/exynos_thermal_common.c > create mode 100644 drivers/thermal/samsung/exynos_thermal_common.h > create mode 100644 drivers/thermal/samsung/exynos_tmu.c > create mode 100644 drivers/thermal/samsung/exynos_tmu.h > create mode 100644 drivers/thermal/samsung/exynos_tmu_data.c > create mode 100644 drivers/thermal/samsung/exynos_tmu_data.h > delete mode 100644 include/linux/platform_data/exynos_thermal.h > > > -- You have got to be excited about what you are doing. (L. Lamport) Eduardo Valentin