Message ID | 20221221020520.1326964-1-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | thermal/drivers/tsens: specify nvmem cells in DT rather than parsing them manually | expand |
Hi Dmitry, On 21/12/2022 03:05, Dmitry Baryshkov wrote: > Historically the tsens driver fetches the calibration data as a blob and > then parses the blob on its own. This results in semi-duplicated code > spreading over the platform-specific functions. > > This patch series changes tsens calibration code to per-value nvmem > cells rather than parsing the blob in the driver. For backwards > compatibility the old code is left in place for msm8916, msm8974 and > qcs404, the platforms which have in-tree DT files. For all other > affected platforms the old parsing code has been dropped as a part of > this series. > > The code was tested on msm8916 and qcs404 only. > > Note: the DTs changes depend on driver changes. Tsens driver will not > work if DT patches are merged, but the driver bits are not. As the > thermal sense is critical for device safety, I'd suggest merging binding > and driver during one merge window and then merging DT changes in the > next merge window. We can avoid an extra release cycle with a common *immutable* branch shared between the two trees. > Note2: > For v3 I have reworked the legacy bindings support into the small and > manageable data-driven piece of code. > > I still have included patches to drop legacy support for 8939 > (msm8939.dtsi is on the list, I have provided Bryan with the patch to > update it to new bindings) and 8976 (msm8976.dtsi and msm8956.dtsi, > which use single-blob bindings, have been accepted for 6.2, dropping old > bindings support depends on mutual consensuns of platform and thermal > code maintainers). The patches are the last ones in the thermal part of > the series, thus if they are declined, the reset of the series still can > be applied without any problems. > > Changes since v3: > - Added a patch to fix the tsens compatible string on msm8956 SoC, > - Fixed num-sensors and slope coefficients for the msm8939 SoC, > - Rewrote code supporting old bindings into the simple data-driven > parser common to all legacy platforms which made dropping support for > old bindings less demanding. > > Changes since v2: > - Made init_8956 static, as pointed out by the testing robot and by > AngeloGioacchino Del Regno. > > Changes since the RFC: > - Sorted out the msm8976/msm8956, custom slopes are used only for msm8956, > - Implemented proper support for msm8974/apq8084, > - Added tsens_calibrate_common() and ops_v0_1 which can be used in > common cases, > - Removed superfluous identity hw_ids > - Fixed calibration calculation in tsens_calibrate_nvmem() for > ONE_PT_CALIB case > > Dmitry Baryshkov (20): > dt-bindings: thermal: tsens: add msm8956 compat > dt-bindings: thermal: tsens: support per-sensor calibration cells > dt-bindings: thermal: tsens: add per-sensor cells for msm8974 > thermal/drivers/tsens: Drop unnecessary hw_ids > thermal/drivers/tsens: Drop msm8976-specific defines > thermal/drivers/tsens: Sort out msm8976 vs msm8956 data > thermal/drivers/tsens: limit num_sensors to 9 > thermal/drivers/tsens: fix slope values for msm8939 > thermal/drivers/tsens: Support using nvmem cells for calibration data > thermal/drivers/tsens: Support using nvmem cells for msm8974 > calibration > thermal/drivers/tsens: Rework legacy calibration data parsers > thermal/drivers/tsens: Drop single-cell code for mdm9607 > thermal/drivers/tsens: Drop single-cell code for msm8939 > thermal/drivers/tsens: Drop single-cell code for msm8976/msm8956 > arm64: dts: qcom: msm8956: use SoC-specific compat for tsens > arm64: dts: qcom: msm8916: specify per-sensor calibration cells > arm64: dts: qcom: msm8976: specify per-sensor calibration cells > arm64: dts: qcom: qcs404: specify per-sensor calibration cells > ARM: dts: qcom-msm8974: specify per-sensor calibration cells > ARM: dts: qcom-apq8084: specify per-sensor calibration cells > > .../bindings/thermal/qcom-tsens.yaml | 123 +++- > arch/arm/boot/dts/qcom-apq8084.dtsi | 313 ++++++++- > arch/arm/boot/dts/qcom-msm8974.dtsi | 313 ++++++++- > arch/arm64/boot/dts/qcom/msm8916.dtsi | 81 ++- > arch/arm64/boot/dts/qcom/msm8956.dtsi | 4 + > arch/arm64/boot/dts/qcom/msm8976.dtsi | 153 +++- > arch/arm64/boot/dts/qcom/qcs404.dtsi | 145 +++- > drivers/thermal/qcom/tsens-v0_1.c | 653 +++++------------- > drivers/thermal/qcom/tsens-v1.c | 340 +++------ > drivers/thermal/qcom/tsens.c | 166 +++++ > drivers/thermal/qcom/tsens.h | 46 +- > 11 files changed, 1572 insertions(+), 765 deletions(-) >