On 1/15/26 6:10 PM, Tudor Ambarus wrote:
>>> I'm going to link the ACPM TMU child node with the TMU node via a
>>> "samsung,tmu-regs" property.
>> This could be fine, but I actually wonder what's there. What registers
>> exactly. For example modern Exynos 88xx, already with APM block, still
>> have exactly the same TMU unit at 0x1008{04}000 with all typical
>> triminfo, current temperature and thresholds.
>>
> It's the same for gs101, the TMU instances have all the typical registers,
> it's just that everything is handled via ACPM but the intpend registers.
I could still use some guidance, Krzysztof, thanks for the help so far!
Based on the current feedback I was going to propose the following
description:
soc: soc@0 {
tmu_top: thermal-sensor@100a0000 {
compatible = "google,gs101-tmu-top";
reg = <0x100a0000 0x800>;
clocks = <&cmu_misc CLK_GOUT_MISC_TMU_TOP_PCLK>;
interrupts = <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH 0>;
};
};
firmware {
acpm_ipc: power-management {
compatible = "google,gs101-acpm-ipc";
thermal-sensor {
compatible = "google,gs101-acpm-tmu-top";
samsung,tmu = <&tmu_top>;
#thermal-sensor-cells = <1>;
};
};
};
GS101 handles the thermal sensors in a hybrid way: it uses the TMU IP
block to read the INTPEND registers, and everything else is handled via
ACPM calls. There's also the abstraction that one ACPM sensor is comprised
of multiple physical TMU sensors.
My concern now is that the ACPM TMU child node is not hardware per se,
but just a firmware abstraction (One-to-Many sensors).
If everything was handled via ACPM, without the need to read the TMU's
INTPEND registers directly, I would have describe the sensor just as an
ACPM child.
Because of the hybrid approach I'm arguing the ACPM child node does not
fully describe the hardware, and it's just a firmware abstraction.
So option 2/ would be to have just the TMU IP block described with a
phandle to the ACPM IPC:
soc: soc@0 {
tmu@100a0000 {
compatible = "google,gs101-tmu-top";
reg = <0x100a0000 0x800>;
clocks = <&cmu_misc CLK_GOUT_MISC_TMU_TOP_PCLK>;
interrupts = <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH 0>;
/* The "Firmware Phandle" approach */
samsung,acpm-ipc = <&acpm_ipc>;
#thermal-sensor-cells = <1>;
};
};
Which one do you think it better describes the hardware?
Thanks!
ta