[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e2f028d6-774f-4773-889f-7d56b833067e@kernel.org>
Date: Thu, 15 Jan 2026 16:34:39 +0100
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Tudor Ambarus <tudor.ambarus@...aro.org>
Cc: "Rafael J. Wysocki" <rafael@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>, Zhang Rui <rui.zhang@...el.com>,
Lukasz Luba <lukasz.luba@....com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Lee Jones <lee@...nel.org>,
Alim Akhtar <alim.akhtar@...sung.com>,
Peter Griffin <peter.griffin@...aro.org>,
André Draszik <andre.draszik@...aro.org>,
Bartlomiej Zolnierkiewicz <bzolnier@...il.com>, Kees Cook <kees@...nel.org>,
"Gustavo A. R. Silva" <gustavoars@...nel.org>, willmcvicker@...gle.com,
jyescas@...gle.com, shin.son@...sung.com, linux-pm@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-samsung-soc@...r.kernel.org,
linux-hardening@...r.kernel.org
Subject: Re: [PATCH 3/8] dt-bindings: mfd: Add Google GS101 TMU Syscon
On 15/01/2026 15:53, Tudor Ambarus wrote:
>
>
> On 1/15/26 3:36 PM, Krzysztof Kozlowski wrote:
>> On Wed, Jan 14, 2026 at 02:16:31PM +0000, Tudor Ambarus wrote:
>>> Document the bindings for the Thermal Management Unit (TMU) System
>>> Controller found on Google GS101 SoCs.
>>>
>>> This memory-mapped block exposes the registers required for reading
>>> thermal interrupt status bits. It functions as a syscon provider,
>>
>> I don't think this is syscon, but the actual TMU. Syscon is various,
>> unrelated system configuration registers.
>>
>>> allowing the main thermal driver to access these registers while
>>> the firmware manages the core thermal logic.
>>>
>>> Signed-off-by: Tudor Ambarus <tudor.ambarus@...aro.org>
>>> ---
>>> .../bindings/mfd/google,gs101-tmu-syscon.yaml | 37 ++++++++++++++++++++++
>>> 1 file changed, 37 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/mfd/google,gs101-tmu-syscon.yaml b/Documentation/devicetree/bindings/mfd/google,gs101-tmu-syscon.yaml
>>> new file mode 100644
>>> index 0000000000000000000000000000000000000000..6a11e43abeaa23ee473be2153478436856277714
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/mfd/google,gs101-tmu-syscon.yaml
>>
>> Not MFD either, but soc.
>
> You are right, it's not a syscon, it's just a normal thermal IP block
> from which I need to access the interrupt pending registers.
>
> Then I guess I shall describe the new binding in bindings/thermal/,
> please correct me if I'm wrong.
>
>>
>>> @@ -0,0 +1,37 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/mfd/google,gs101-tmu-syscon.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Google GS101 TMU System Controller
>>> +
>>> +maintainers:
>>> + - Tudor Ambarus <tudor.ambarus@...aro.org>
>>> +
>>> +description: |
>>
>> Drop |
>>
>>> + The TMU System Controller provides a memory-mapped interface for
>>> + accessing the interrupt status registers of the Thermal Management
>>> + Unit. It is used as a syscon provider for the main TMU driver.
>>
>> No, it is not a syscon provider. Entire last sentence is incorrect. You
>> must describe here hardware and this hardware does not provide any sort
>> of syscon to any sort of driver.
>>
>
> Indeed.
>
> 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.
>
> Some concern that I have is that I describe the clocks and interrupts in
> the ACPM TMU child node. Usually the clocks and interrupts belong to the
> node that contains the reg property. But I guess that's alright because
> the interrupts property is expected to be in the node that the driver
> binds to. For the clocks, by placing it in the ACPM child node, I allow
> runtime PM to manage it.
You have to first know whether these clocks and interrupts are going TO
the ACPM node.
All this looks like designing for drivers, sorry.
>
> Do you think the below description is accurate?
>
> soc: soc@0 {
> tmu_top: thermal-sensor@...a0000 {
> compatible = "google,gs101-tmu-top";
> reg = <0x100a0000 0x800>;
> };
> };
>
> firmware {
> acpm_ipc: power-management {
> compatible = "google,gs101-acpm-ipc";
> /* ... */
>
> thermal-sensor {
> compatible = "google,gs101-acpm-tmu-top";
> clocks = <&cmu_misc CLK_GOUT_MISC_TMU_TOP_PCLK>;
> interrupts = <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH 0>;
This I doubt, really. Why would ACPM child be hooked via CPU clock and
interrupts?
Best regards,
Krzysztof
Powered by blists - more mailing lists