[PATCH v6 0/5] Allwinner: A523: add support for A523 THS0/1 controllers
From: Mikhail Kalashnikov <hidden>
Date: 2026-09-13 14:56:04
This patch series adds temperature sensor support for the Allwinner A523
family of processors (same die with H728/A527/T527)
Based on 7.3-rc2.
Changes v6~v5:
1) dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
- removed the redundant clocks constraint for the A523 controllers
- simplified the else branch to maxItems: 1
- dropped the extra example node
2) thermal/drivers/sun8i: replace devm_reset_control_get to...
- no changes
3) thermal/drivers/sun8i: get calibration data from two nvmem cells
- skip calibration instead of passing a NULL pointer to the calibration
callback when no calibration cell is found
4) thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
- THS1 has four sensors; added the ths1_3 (NPU) calibration data
- renamed the scale/offset constants to match the BSP naming
- check caldata[1] instead of caldata[0] for the factory temperature
- use SCALE_BELOW as the calibration divisor, as in the BSP
- documented that the BSP CAL_COM(5000) is applied through ft_deviation
- updated the commit description
5) arm64: dts: allwinner: sun55i: add thermal sensors
- put nvmem-cell-names on a single line
- dropped unused trip labels, kept the ones referenced by the cooling maps
- renamed the "gpu-trips" container to "trips"
- added the npu-thermal zone for the fourth THS1 sensor
Changes v5~v4:
1) dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
- added empty line between what and context
- clarified description
- added missing period
2) thermal/drivers/sun8i: replace devm_reset_control_get to...
- updated Reviewed-by tag
3) thermal/drivers/sun8i: get calibration data from two nvmem cells
- removed dead IS_ERR(caldata) check
- replaced NULL/IS_ERR check with IS_ERR_OR_NULL()
4) thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
- clarified description
- added Reviewed-by tag
5) arm64: dts: allwinner: sun55i: add thermal sensors
- fixed patch subject prefix
- clarified description
- sorted thermal-sensor nodes by base address
- added empty lines between trip nodes (DT coding style)
v4 https://lore.kernel.org/linux-sunxi/20260504050245.646078-1-iuncuim@gmail.com/
Changes v4~v3:
1) dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
- gpadc replaced to mod clock
x) thermal/drivers/sun8i: add gpadc clock
- removed
2) thermal/drivers/sun8i: replace devm_reset_control_get to
- no functional changes
3) thermal/drivers/sun8i: get calibration data from two nvmem cells
- no functional changes
4) thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
- gpadc replaced to mod clock
5) arm64: dts: allwinner: A523: Add thermal sensors and zones
- gpadc replaced to mod clock
v3 https://lore.kernel.org/linux-sunxi/20251025043129.160454-1-iuncuim@gmail.com
Changes v3~v2:
x) dt-bindings: nvmem: SID: Add binding for A523 SID controller
- previously accepted, therefore removed from this version
1) dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
- added changes as requested by Rob
2) thermal/drivers/sun8i: add gpadc clock
- removed undescribed changes spaces to tabs
3) thermal/drivers/sun8i: replace devm_reset_control_get to
- changed the commit description to the version suggested by wens
- added reviewed-by tag
4) thermal/drivers/sun8i: get calibration data from two nvmem cells
- added spaces in the description block before "*"
5) thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
- added alignment of functions in compliance with open parenthesis
x) arm64: dts: allwinner: A523: Add SID controller node
- previously accepted, therefore removed from this version
6) arm64: dts: allwinner: A523: Add thermal sensors and zones
- no functional changes
Changes v2~v1:
1) dt-bindings: nvmem: SID: Add binding for A523 SID controller
- added new patch
2) dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
- changed clock order
- added additional nvmem cell with calibration data
- added requirements for new controllers
- added description
3) thermal/drivers/sun8i: add gpadc clock
- removed unnecessary call to clk_prepare_enable() since
devm_clk_get_enabled()includes this
4) thermal/drivers/sun8i: replace devm_reset_control_get to
- original function replaced with devm_reset_control_get_shared_deasserted()
- removed some of the repetitive code executed by
devm_reset_control_get_shared_deasserted()
5) thermal/drivers/sun8i: get calibration data from two nvmem cells
- added possibility to get calibration data from two independent cells
6) thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
- removed magic digits
- changed description of calibration data procedure for A523
- changed numbers of array elements with calibration data
7) arm64: dts: allwinner: A523: Add SID controller node
- fix typo (sun50i->sun55i)
8) arm64: dts: allwinner: A523: Add thermal sensors and zones
- cell with calibration data divided into two
- added passive trips for gpu
- added information that information obtained from BSP
v1: https://lore.kernel.org/linux-sunxi/20250411003827.782544-1-iuncuim@gmail.com
Mikhail Kalashnikov (5):
dt-bindings: thermal: sun8i: Add A523 THS0/1 controllers
thermal/drivers/sun8i: replace devm_reset_control_get to
devm_reset_control_get_shared_deasserted
thermal/drivers/sun8i: get calibration data from two nvmem cells
thermal/drivers/sun8i: Add support for A523 THS0/1 controllers
arm64: dts: allwinner: sun55i: add thermal sensors
.../thermal/allwinner,sun8i-a83t-ths.yaml | 34 ++-
.../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 172 +++++++++++++
drivers/thermal/sun8i_thermal.c | 242 +++++++++++++++---
3 files changed, 403 insertions(+), 45 deletions(-)
--
2.55.0