2023-06-01 14:06:55

by Matthias Brugger

[permalink] [raw]
Subject: [PATCH v2 1/2] dt-bindings: thermal: mediatek: Move auxdac binding to yaml

From: Matthias Brugger <[email protected]>

Convert the older binding to yaml syntax.
The thermal IP has several sensors, to reflect that
thermal-sensors-cells is set to '1'. Apart optional regulator
for bank supply wasn't part of the old binding description,
this patch adds them.

Signed-off-by: Matthias Brugger <[email protected]>

---

Changes in v2:
- drop auxadc and apmixedsys nodes
- maxItems for clocks
- drop obvious description of reset
- mention optional regulators in commit message
- mention thermal-sensors-cells change in commit message

.../bindings/thermal/mediatek,thermal.yaml | 152 ++++++++++++++++++
.../bindings/thermal/mediatek-thermal.txt | 52 ------
2 files changed, 152 insertions(+), 52 deletions(-)
create mode 100644 Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
delete mode 100644 Documentation/devicetree/bindings/thermal/mediatek-thermal.txt

diff --git a/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml b/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
new file mode 100644
index 000000000000..bbc9c2935da0
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
@@ -0,0 +1,152 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/mediatek,thermal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Thermal Sensor
+
+maintainers:
+ - Matthias Brugger <[email protected]>
+
+description: |
+ The MediaTek thermal controller measures the on-SoC temperatures.
+ This device does not have its own ADC, instead it directly controls
+ the AUXADC via AHB bus accesses. For this reason this device needs
+ phandles to the AUXADC. Also it controls a mux in the apmixedsys
+ register space via AHB bus accesses, so a phandle to the APMIXEDSYS
+ is also needed.
+
+properties:
+ compatible:
+ oneOf:
+ - enum:
+ - mediatek,mt2701-thermal
+ - mediatek,mt2712-thermal
+ - mediatek,mt7622-thermal
+ - mediatek,mt7986-thermal
+ - mediatek,mt8173-thermal
+ - mediatek,mt8183-thermal
+ - mediatek,mt8365-thermal
+ - items:
+ - const: mediatek,mt7981-thermal
+ - const: mediatek,mt7986-thermal
+ - items:
+ - const: mediatek,mt8516-thermal
+ - const: mediatek,mt2701-thermal
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ maxItems: 2
+
+ clock-names:
+ items:
+ - const: therm
+ - const: auxadc
+
+ resets:
+ maxItems: 1
+
+ reset-names:
+ items:
+ - const: therm
+
+ nvmem-cells:
+ items:
+ - description: Calibration eFuse data. If unspecified default values are used.
+
+ nvmem-cell-names:
+ items:
+ - const: calibration-data
+
+ mediatek,auxadc:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ A phandle to the AUXADC which the thermal controller uses.
+
+ mediatek,apmixedsys:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ A phandle to the APMIXEDSYS controller.
+
+ "#thermal-sensor-cells":
+ const: 1
+
+ bank0-supply:
+ description: Regulator supplying voltage to the first bank
+
+ bank1-supply:
+ description: Regulator supplying voltage to the second bank
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - mediatek,auxadc
+ - mediatek,apmixedsys
+ - "#thermal-sensor-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/mt8173-clk.h>
+ #include <dt-bindings/reset/mt8173-resets.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ thermal: thermal@1100b000 {
+ #thermal-sensor-cells = <1>;
+ compatible = "mediatek,mt8173-thermal";
+ reg = <0 0x1100b000 0 0x1000>;
+ interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
+ clock-names = "therm", "auxadc";
+ resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
+ reset-names = "therm";
+ mediatek,auxadc = <&auxadc>;
+ mediatek,apmixedsys = <&apmixedsys>;
+ nvmem-cells = <&thermal_calibration_data>;
+ nvmem-cell-names = "calibration-data";
+ };
+
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <1000>;
+ polling-delay = <1000>;
+
+ thermal-sensors = <&thermal 0>;
+ sustainable-power = <1500>;
+
+ trips {
+ threshold: trip-point0 {
+ temperature = <68000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ target: trip-point1 {
+ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ cpu_crit: cpu-crit0 {
+ temperature = <115000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+ };
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
deleted file mode 100644
index ac39c7156fde..000000000000
--- a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-* Mediatek Thermal
-
-This describes the device tree binding for the Mediatek thermal controller
-which measures the on-SoC temperatures. This device does not have its own ADC,
-instead it directly controls the AUXADC via AHB bus accesses. For this reason
-this device needs phandles to the AUXADC. Also it controls a mux in the
-apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS
-is also needed.
-
-Required properties:
-- compatible:
- - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
- - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
- - "mediatek,mt2712-thermal" : For MT2712 family of SoCs
- - "mediatek,mt7622-thermal" : For MT7622 SoC
- - "mediatek,mt7981-thermal", "mediatek,mt7986-thermal" : For MT7981 SoC
- - "mediatek,mt7986-thermal" : For MT7986 SoC
- - "mediatek,mt8183-thermal" : For MT8183 family of SoCs
- - "mediatek,mt8365-thermal" : For MT8365 family of SoCs
- - "mediatek,mt8516-thermal", "mediatek,mt2701-thermal : For MT8516 family of SoCs
-- reg: Address range of the thermal controller
-- interrupts: IRQ for the thermal controller
-- clocks, clock-names: Clocks needed for the thermal controller. required
- clocks are:
- "therm": Main clock needed for register access
- "auxadc": The AUXADC clock
-- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses
-- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller.
-- #thermal-sensor-cells : Should be 0. See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for a description.
-
-Optional properties:
-- resets: Reference to the reset controller controlling the thermal controller.
-- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If
- unspecified default values shall be used.
-- nvmem-cell-names: Should be "calibration-data"
-
-Example:
-
- thermal: thermal@1100b000 {
- #thermal-sensor-cells = <1>;
- compatible = "mediatek,mt8173-thermal";
- reg = <0 0x1100b000 0 0x1000>;
- interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
- clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
- clock-names = "therm", "auxadc";
- resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
- reset-names = "therm";
- mediatek,auxadc = <&auxadc>;
- mediatek,apmixedsys = <&apmixedsys>;
- nvmem-cells = <&thermal_calibration_data>;
- nvmem-cell-names = "calibration-data";
- };
--
2.40.1



2023-06-02 18:20:19

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt-bindings: thermal: mediatek: Move auxdac binding to yaml

On Thu, Jun 01, 2023 at 03:44:24PM +0200, [email protected] wrote:
> From: Matthias Brugger <[email protected]>
>
> Convert the older binding to yaml syntax.
> The thermal IP has several sensors, to reflect that
> thermal-sensors-cells is set to '1'. Apart optional regulator
> for bank supply wasn't part of the old binding description,
> this patch adds them.
>
> Signed-off-by: Matthias Brugger <[email protected]>
>
> ---
>
> Changes in v2:
> - drop auxadc and apmixedsys nodes
> - maxItems for clocks
> - drop obvious description of reset
> - mention optional regulators in commit message
> - mention thermal-sensors-cells change in commit message
>
> .../bindings/thermal/mediatek,thermal.yaml | 152 ++++++++++++++++++
> .../bindings/thermal/mediatek-thermal.txt | 52 ------
> 2 files changed, 152 insertions(+), 52 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
> delete mode 100644 Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
>
> diff --git a/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml b/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
> new file mode 100644
> index 000000000000..bbc9c2935da0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/thermal/mediatek,thermal.yaml
> @@ -0,0 +1,152 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/thermal/mediatek,thermal.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek Thermal Sensor
> +
> +maintainers:
> + - Matthias Brugger <[email protected]>
> +
> +description: |
^
You don't need this btw, unless you have formatting to preserve.

> + The MediaTek thermal controller measures the on-SoC temperatures.
> + This device does not have its own ADC, instead it directly controls
> + the AUXADC via AHB bus accesses. For this reason this device needs
> + phandles to the AUXADC. Also it controls a mux in the apmixedsys
> + register space via AHB bus accesses, so a phandle to the APMIXEDSYS
> + is also needed.

> + reset-names:
> + items:
> + - const: therm

> + nvmem-cell-names:
> + items:
> + - const: calibration-data

You don't need the "items: - const:", "const:" alone is sufficient.

> +
> + mediatek,auxadc:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + A phandle to the AUXADC which the thermal controller uses...
...to read the on-SoC temperatures as it does not have its own ADC.

Moving the information out of the description down here seems like it
would be better than what the original text binding does. Sorry for not
point that out last time around.

> +
> + mediatek,apmixedsys:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + A phandle to the APMIXEDSYS controller...

Ideally the information about the purpose of the mux would go here, but
I don't know the purpose of it :)

> + "#thermal-sensor-cells":
> + const: 1
> +
> + bank0-supply:
> + description: Regulator supplying voltage to the first bank

Since I am an eejit, first bank of what? Sensors?

Otherwise, LGTM.

Cheers,
Conor.


Attachments:
(No filename) (3.27 kB)
signature.asc (235.00 B)
Download all attachments
Subject: Re: [PATCH v2 1/2] dt-bindings: thermal: mediatek: Move auxdac binding to yaml

Il 01/06/23 15:44, [email protected] ha scritto:
> From: Matthias Brugger <[email protected]>
>
> Convert the older binding to yaml syntax.
> The thermal IP has several sensors, to reflect that
> thermal-sensors-cells is set to '1'. Apart optional regulator
> for bank supply wasn't part of the old binding description,
> this patch adds them.
>
> Signed-off-by: Matthias Brugger <[email protected]>

Reviewed-by: AngeloGioacchino Del Regno <[email protected]>