diff mbox series

[14/39] arm64: dts: qcom: sdm630: Add TSENS node

Message ID 20210728222542.54269-15-konrad.dybcio@somainline.org
State Accepted
Commit 7c54b82b4545386bb576b7c5df5b8d4f95f11a5b
Headers show
Series [01/39] arm64: dts: qcom: sdm630: Rewrite memory map | expand

Commit Message

Konrad Dybcio July 28, 2021, 10:25 p.m. UTC
This will enable temperature reporting for various SoC
components.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
---
 .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +
 arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++
 2 files changed, 12 insertions(+)

Comments

Konrad Dybcio July 29, 2021, 10:52 a.m. UTC | #1
On 29.07.2021 12:50, Thara Gopinath wrote:
> Hi Konrad,
>
> On 7/28/21 6:25 PM, Konrad Dybcio wrote:
>> This will enable temperature reporting for various SoC
>> components.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
>> ---
>>   .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +
>>   arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++
>>   2 files changed, 12 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>> index 4a2eaf28e3fd..d3b9e9b600a2 100644
>> --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>> +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>> @@ -48,6 +48,7 @@ properties:
>>                 - qcom,sc7180-tsens
>>                 - qcom,sc7280-tsens
>>                 - qcom,sc8180x-tsens
>> +              - qcom,sdm630-tsens
>>                 - qcom,sdm845-tsens
>>                 - qcom,sm8150-tsens
>>                 - qcom,sm8250-tsens
>> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>> index 1e54828817d5..7e9c80e35fba 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>> @@ -627,6 +627,17 @@ mnoc: interconnect@1745000 {
>>                    <&mmcc AHB_CLK_SRC>;
>>           };
>>   +        tsens: thermal-sensor@10ae000 {
>> +            compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";
>> +            reg = <0x010ae000 0x1000>, /* TM */
>> +                  <0x010ad000 0x1000>; /* SROT */
>> +            #qcom,sensors = <12>;
>
> Are all 12 sensors used ? I see that in a later patch "arm64: dts: qcom: sdm630: Add thermal-zones configuration" only 9 are used.

Hi,

if I recall correctly, they all give output but not all of the mappings were documented in the downstream sources and we have no documentation whatsoever :(


Konrad
Konrad Dybcio July 29, 2021, 10:55 a.m. UTC | #2
On 29.07.2021 12:54, Thara Gopinath wrote:
>
>
> On 7/29/21 6:52 AM, Konrad Dybcio wrote:
>>
>> On 29.07.2021 12:50, Thara Gopinath wrote:
>>> Hi Konrad,
>>>
>>> On 7/28/21 6:25 PM, Konrad Dybcio wrote:
>>>> This will enable temperature reporting for various SoC
>>>> components.
>>>>
>>>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
>>>> ---
>>>>    .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +
>>>>    arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++
>>>>    2 files changed, 12 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>> index 4a2eaf28e3fd..d3b9e9b600a2 100644
>>>> --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>> +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>> @@ -48,6 +48,7 @@ properties:
>>>>                  - qcom,sc7180-tsens
>>>>                  - qcom,sc7280-tsens
>>>>                  - qcom,sc8180x-tsens
>>>> +              - qcom,sdm630-tsens
>>>>                  - qcom,sdm845-tsens
>>>>                  - qcom,sm8150-tsens
>>>>                  - qcom,sm8250-tsens
>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>> index 1e54828817d5..7e9c80e35fba 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>> @@ -627,6 +627,17 @@ mnoc: interconnect@1745000 {
>>>>                     <&mmcc AHB_CLK_SRC>;
>>>>            };
>>>>    +        tsens: thermal-sensor@10ae000 {
>>>> +            compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";
>>>> +            reg = <0x010ae000 0x1000>, /* TM */
>>>> +                  <0x010ad000 0x1000>; /* SROT */
>>>> +            #qcom,sensors = <12>;
>>>
>>> Are all 12 sensors used ? I see that in a later patch "arm64: dts: qcom: sdm630: Add thermal-zones configuration" only 9 are used.
>>
>> Hi,
>>
>> if I recall correctly, they all give output but not all of the mappings were documented in the downstream sources and we have no documentation whatsoever :(
>
> Right. In that case, why not change #qcom,sensors to 9 and add rest of the sensors if and when needed ?
>
I don't think it makes sense to describe the hardware incorrectly, even if some of it is unused.
Thara Gopinath July 29, 2021, 11:14 a.m. UTC | #3
On 7/29/21 6:55 AM, Konrad Dybcio wrote:
> 
> On 29.07.2021 12:54, Thara Gopinath wrote:
>>
>>
>> On 7/29/21 6:52 AM, Konrad Dybcio wrote:
>>>
>>> On 29.07.2021 12:50, Thara Gopinath wrote:
>>>> Hi Konrad,
>>>>
>>>> On 7/28/21 6:25 PM, Konrad Dybcio wrote:
>>>>> This will enable temperature reporting for various SoC
>>>>> components.
>>>>>
>>>>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
>>>>> ---
>>>>>     .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +
>>>>>     arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++
>>>>>     2 files changed, 12 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>> index 4a2eaf28e3fd..d3b9e9b600a2 100644
>>>>> --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>> +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>> @@ -48,6 +48,7 @@ properties:
>>>>>                   - qcom,sc7180-tsens
>>>>>                   - qcom,sc7280-tsens
>>>>>                   - qcom,sc8180x-tsens
>>>>> +              - qcom,sdm630-tsens
>>>>>                   - qcom,sdm845-tsens
>>>>>                   - qcom,sm8150-tsens
>>>>>                   - qcom,sm8250-tsens
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>> index 1e54828817d5..7e9c80e35fba 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>> @@ -627,6 +627,17 @@ mnoc: interconnect@1745000 {
>>>>>                      <&mmcc AHB_CLK_SRC>;
>>>>>             };
>>>>>     +        tsens: thermal-sensor@10ae000 {
>>>>> +            compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";
>>>>> +            reg = <0x010ae000 0x1000>, /* TM */
>>>>> +                  <0x010ad000 0x1000>; /* SROT */
>>>>> +            #qcom,sensors = <12>;
>>>>
>>>> Are all 12 sensors used ? I see that in a later patch "arm64: dts: qcom: sdm630: Add thermal-zones configuration" only 9 are used.
>>>
>>> Hi,
>>>
>>> if I recall correctly, they all give output but not all of the mappings were documented in the downstream sources and we have no documentation whatsoever :(
>>
>> Right. In that case, why not change #qcom,sensors to 9 and add rest of the sensors if and when needed ?
>>
> I don't think it makes sense to describe the hardware incorrectly, even if some of it is unused.

My thinking was more along the lines of don't expose unused h/w bits.

> 
> 
>
AngeloGioacchino Del Regno July 29, 2021, 1:48 p.m. UTC | #4
Il 29/07/21 13:14, Thara Gopinath ha scritto:
> 
> 
> On 7/29/21 6:55 AM, Konrad Dybcio wrote:
>>
>> On 29.07.2021 12:54, Thara Gopinath wrote:
>>>
>>>
>>> On 7/29/21 6:52 AM, Konrad Dybcio wrote:
>>>>
>>>> On 29.07.2021 12:50, Thara Gopinath wrote:
>>>>> Hi Konrad,
>>>>>
>>>>> On 7/28/21 6:25 PM, Konrad Dybcio wrote:
>>>>>> This will enable temperature reporting for various SoC
>>>>>> components.
>>>>>>
>>>>>> Signed-off-by: AngeloGioacchino Del Regno 
>>>>>> <angelogioacchino.delregno@somainline.org>
>>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
>>>>>> ---
>>>>>>     .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +
>>>>>>     arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++
>>>>>>     2 files changed, 12 insertions(+)
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml 
>>>>>> b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>>> index 4a2eaf28e3fd..d3b9e9b600a2 100644
>>>>>> --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>>> +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
>>>>>> @@ -48,6 +48,7 @@ properties:
>>>>>>                   - qcom,sc7180-tsens
>>>>>>                   - qcom,sc7280-tsens
>>>>>>                   - qcom,sc8180x-tsens
>>>>>> +              - qcom,sdm630-tsens
>>>>>>                   - qcom,sdm845-tsens
>>>>>>                   - qcom,sm8150-tsens
>>>>>>                   - qcom,sm8250-tsens
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi 
>>>>>> b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>>> index 1e54828817d5..7e9c80e35fba 100644
>>>>>> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
>>>>>> @@ -627,6 +627,17 @@ mnoc: interconnect@1745000 {
>>>>>>                      <&mmcc AHB_CLK_SRC>;
>>>>>>             };
>>>>>>     +        tsens: thermal-sensor@10ae000 {
>>>>>> +            compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";
>>>>>> +            reg = <0x010ae000 0x1000>, /* TM */
>>>>>> +                  <0x010ad000 0x1000>; /* SROT */
>>>>>> +            #qcom,sensors = <12>;
>>>>>
>>>>> Are all 12 sensors used ? I see that in a later patch "arm64: dts: qcom: 
>>>>> sdm630: Add thermal-zones configuration" only 9 are used.
>>>>
>>>> Hi,
>>>>
>>>> if I recall correctly, they all give output but not all of the mappings were 
>>>> documented in the downstream sources and we have no documentation whatsoever :(
>>>
>>> Right. In that case, why not change #qcom,sensors to 9 and add rest of the 
>>> sensors if and when needed ?
>>>
>> I don't think it makes sense to describe the hardware incorrectly, even if some 
>> of it is unused.
> 
> My thinking was more along the lines of don't expose unused h/w bits.
> 

You're right about not exposing unused HW bits, but even PC x86 motherboards
(I mean the smbus/i2c drivers for the big holy management/sensors chips) do
have such a "base" configuration, where some lines are read as 0 because they
are effectively not connected by hardware.

In order to avoid confusion to other developers, in my personal opinion, it would
be good go for the current value of 12 (which isn't incorrect, as that's what the
SoC supports)... I don't think that anyone would be confused by seeing zero
readings on some sensors (if their device don't support such sensor), as I think
that everyone is used to that anyway, even if that's in other circumstances...

In any case, luckily that's also safe, because there's no firmware that restricts
the readings to a subset of sensors in this domain (nobody is going to get a
hypervisor fault for that).

I would also, in case, propose to see how things go: I would expect other
developers to push device trees for many SDM630/636/660 devices, including but
not limited to smartphones and SBCs.. so perhaps if we find out that really
nobody uses the 12 sensors, or if the very vast majority uses a different amount,
perhaps we may just transfer the value to device-specific configurations in one
go, as to avoid unnecessary noise... I think :)))

>>
>>
>>
>
Rob Herring (Arm) Aug. 2, 2021, 10:39 p.m. UTC | #5
On Thu, 29 Jul 2021 00:25:17 +0200, Konrad Dybcio wrote:
> This will enable temperature reporting for various SoC

> components.

> 

> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>

> Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>

> ---

>  .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +

>  arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++

>  2 files changed, 12 insertions(+)

> 


Acked-by: Rob Herring <robh@kernel.org>
Bjorn Andersson Aug. 24, 2021, 3:16 p.m. UTC | #6
On Thu 29 Jul 06:48 PDT 2021, AngeloGioacchino Del Regno wrote:

> Il 29/07/21 13:14, Thara Gopinath ha scritto:

> > 

> > 

> > On 7/29/21 6:55 AM, Konrad Dybcio wrote:

> > > 

> > > On 29.07.2021 12:54, Thara Gopinath wrote:

> > > > 

> > > > 

> > > > On 7/29/21 6:52 AM, Konrad Dybcio wrote:

> > > > > 

> > > > > On 29.07.2021 12:50, Thara Gopinath wrote:

> > > > > > Hi Konrad,

> > > > > > 

> > > > > > On 7/28/21 6:25 PM, Konrad Dybcio wrote:

> > > > > > > This will enable temperature reporting for various SoC

> > > > > > > components.

> > > > > > > 

> > > > > > > Signed-off-by: AngeloGioacchino Del Regno

> > > > > > > <angelogioacchino.delregno@somainline.org>

> > > > > > > Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>

> > > > > > > ---

> > > > > > >     .../devicetree/bindings/thermal/qcom-tsens.yaml       |  1 +

> > > > > > >     arch/arm64/boot/dts/qcom/sdm630.dtsi                  | 11 +++++++++++

> > > > > > >     2 files changed, 12 insertions(+)

> > > > > > > 

> > > > > > > diff --git

> > > > > > > a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml

> > > > > > > b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml

> > > > > > > index 4a2eaf28e3fd..d3b9e9b600a2 100644

> > > > > > > --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml

> > > > > > > +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml

> > > > > > > @@ -48,6 +48,7 @@ properties:

> > > > > > >                   - qcom,sc7180-tsens

> > > > > > >                   - qcom,sc7280-tsens

> > > > > > >                   - qcom,sc8180x-tsens

> > > > > > > +              - qcom,sdm630-tsens

> > > > > > >                   - qcom,sdm845-tsens

> > > > > > >                   - qcom,sm8150-tsens

> > > > > > >                   - qcom,sm8250-tsens

> > > > > > > diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi

> > > > > > > b/arch/arm64/boot/dts/qcom/sdm630.dtsi

> > > > > > > index 1e54828817d5..7e9c80e35fba 100644

> > > > > > > --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi

> > > > > > > +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi

> > > > > > > @@ -627,6 +627,17 @@ mnoc: interconnect@1745000 {

> > > > > > >                      <&mmcc AHB_CLK_SRC>;

> > > > > > >             };

> > > > > > >     +        tsens: thermal-sensor@10ae000 {

> > > > > > > +            compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";

> > > > > > > +            reg = <0x010ae000 0x1000>, /* TM */

> > > > > > > +                  <0x010ad000 0x1000>; /* SROT */

> > > > > > > +            #qcom,sensors = <12>;

> > > > > > 

> > > > > > Are all 12 sensors used ? I see that in a later patch

> > > > > > "arm64: dts: qcom: sdm630: Add thermal-zones

> > > > > > configuration" only 9 are used.

> > > > > 

> > > > > Hi,

> > > > > 

> > > > > if I recall correctly, they all give output but not all of

> > > > > the mappings were documented in the downstream sources and

> > > > > we have no documentation whatsoever :(

> > > > 

> > > > Right. In that case, why not change #qcom,sensors to 9 and add

> > > > rest of the sensors if and when needed ?

> > > > 

> > > I don't think it makes sense to describe the hardware incorrectly,

> > > even if some of it is unused.

> > 

> > My thinking was more along the lines of don't expose unused h/w bits.

> > 

> 

> You're right about not exposing unused HW bits, but even PC x86 motherboards

> (I mean the smbus/i2c drivers for the big holy management/sensors chips) do

> have such a "base" configuration, where some lines are read as 0 because they

> are effectively not connected by hardware.

> 

> In order to avoid confusion to other developers, in my personal opinion, it would

> be good go for the current value of 12 (which isn't incorrect, as that's what the

> SoC supports)... I don't think that anyone would be confused by seeing zero

> readings on some sensors (if their device don't support such sensor), as I think

> that everyone is used to that anyway, even if that's in other circumstances...

> 

> In any case, luckily that's also safe, because there's no firmware that restricts

> the readings to a subset of sensors in this domain (nobody is going to get a

> hypervisor fault for that).

> 

> I would also, in case, propose to see how things go: I would expect other

> developers to push device trees for many SDM630/636/660 devices, including but

> not limited to smartphones and SBCs.. so perhaps if we find out that really

> nobody uses the 12 sensors, or if the very vast majority uses a different amount,

> perhaps we may just transfer the value to device-specific configurations in one

> go, as to avoid unnecessary noise... I think :)))

> 


If the SoC has 12 sensors I think it makes sense to define that, similar
to how a SoC might have 200 GPIOs, even though only a handful is
actually used.

Regards,
Bjorn
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
index 4a2eaf28e3fd..d3b9e9b600a2 100644
--- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
+++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
@@ -48,6 +48,7 @@  properties:
               - qcom,sc7180-tsens
               - qcom,sc7280-tsens
               - qcom,sc8180x-tsens
+              - qcom,sdm630-tsens
               - qcom,sdm845-tsens
               - qcom,sm8150-tsens
               - qcom,sm8250-tsens
diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index 1e54828817d5..7e9c80e35fba 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -627,6 +627,17 @@  mnoc: interconnect@1745000 {
 				 <&mmcc AHB_CLK_SRC>;
 		};
 
+		tsens: thermal-sensor@10ae000 {
+			compatible = "qcom,sdm630-tsens", "qcom,tsens-v2";
+			reg = <0x010ae000 0x1000>, /* TM */
+				  <0x010ad000 0x1000>; /* SROT */
+			#qcom,sensors = <12>;
+			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+					 <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "uplow", "critical";
+			#thermal-sensor-cells = <1>;
+		};
+
 		tcsr_mutex_regs: syscon@1f40000 {
 			compatible = "syscon";
 			reg = <0x01f40000 0x20000>;