[PATCH v8 00/12] QorIQ TMU multi-sensor and HWMON support

From: Andrey Smirnov
Date: Tue Dec 10 2019 - 11:42:09 EST


Everyone:

This series contains patches adding support for HWMON integration, bug
fixes and general improvements (hopefully) for TMU driver I made while
working on it on i.MX8MQ.

Feedback is welcome!

Thanks,
Andrey Smirnov

Changes since [v7]:

- Rebased on top of 12/05 linux-next

Changes since [v6]:

- Rebased on top of Zhang's "next" branch

- Added "thermal: qoriq: Drop unnecessary drvdata cleanup"

Changes since [v5]

- Rebased on recent linux-next, dropped "thermal: qoriq: Remove
unnecessary DT node is NULL check" since it is already in the
tree

- Dropped dependency on [rfc]

Changes since [v4]

- Collected Tested-by from Lucas

- Collected Reviewed-by from Daniel

- Converted "thermal: qoriq: Enable all sensors before registering
them" to use if instead of switch statement for error checking

Changes since [v3]

- Series reabse on top of [rfc]

- Fixed incorrect goto label in "thermal: qoriq: Pass data to
qoriq_tmu_calibration()"

- Added REGS_TRITSR() register description to "thermal: qoriq: Do
not report invalid temperature reading"

- Reworded commit message of "thermal: qoriq: Remove unnecessary
DT node is NULL check"

Changes since [v2]

- Patches rebased on v5.1-rc1

Changes since [v1]

- Rebased on "linus" branch of
git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
that included latest chagnes adding multi-sensors support

- Dropped

thermal: qoriq: Add support for multiple thremal sites
thermal: qoriq: Be more strict when parsing
thermal: qoriq: Simplify error handling in qoriq_tmu_get_sensor_id()

since they are no longer relevant

- Added

thermal: qoriq: Don't store struct thermal_zone_device reference
thermal: qoriq: Add local struct qoriq_sensor pointer
thermal: qoriq: Embed per-sensor data into struct qoriq_tmu_data
thermal: qoriq: Pass data to qoriq_tmu_register_tmu_zone() directly

to simplify latest codebase

- Changed "thermal: qoriq: Do not report invalid temperature
reading" to use regmap_read_poll_timeout() to make sure that
tmu_get_temp() waits for fist sample to be ready before
reporting it. This case is triggered on my setup if
qoriq_thermal is compiled as a module

[v1] lore.kernel.org/lkml/20190218191141.3729-1-andrew.smirnov@xxxxxxxxx
[v2] lore.kernel.org/lkml/20190222200508.26325-1-andrew.smirnov@xxxxxxxxx
[v3] lore.kernel.org/lkml/20190401041418.5999-1-andrew.smirnov@xxxxxxxxx
[v4] lore.kernel.org/lkml/20190413082748.29990-1-andrew.smirnov@xxxxxxxxx
[v5] lore.kernel.org/lkml/20190424064830.18179-1-andrew.smirnov@xxxxxxxxx
[v6] lore.kernel.org/lkml/20190821012612.7823-1-andrew.smirnov@xxxxxxxxx
[v7] lore.kernel.org/lkml/20190912012920.29601-1-andrew.smirnov@xxxxxxxxx
[rfc] lore.kernel.org/lkml/20190404080647.8173-1-daniel.lezcano@xxxxxxxxxx

Andrey Smirnov (12):
thermal: qoriq: Add local struct device pointer
thermal: qoriq: Don't store struct thermal_zone_device reference
thermal: qoriq: Add local struct qoriq_sensor pointer
thermal: qoriq: Embed per-sensor data into struct qoriq_tmu_data
thermal: qoriq: Pass data to qoriq_tmu_register_tmu_zone() directly
thermal: qoriq: Pass data to qoriq_tmu_calibration() directly
thermal: qoriq: Drop unnecessary drvdata cleanup
thermal: qoriq: Convert driver to use regmap API
thermal: qoriq: Enable all sensors before registering them
thermal: qoriq: Do not report invalid temperature reading
thermal_hwmon: Add devres wrapper for thermal_add_hwmon_sysfs()
thermal: qoriq: Add hwmon support

drivers/thermal/qoriq_thermal.c | 336 +++++++++++++++-----------------
drivers/thermal/thermal_hwmon.c | 28 +++
drivers/thermal/thermal_hwmon.h | 7 +
3 files changed, 195 insertions(+), 176 deletions(-)

--
2.21.0