Commit 6d97d497 authored by Anson Huang's avatar Anson Huang Committed by Rob Herring
Browse files

dt-bindings: thermal: Convert i.MX to json-schema



Convert the i.MX thermal binding to DT schema format using json-schema

Signed-off-by: default avatarAnson Huang <Anson.Huang@nxp.com>
Reviewed-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 3449aae3
Loading
Loading
Loading
Loading
+0 −61
Original line number Diff line number Diff line
* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs

Required properties:
- compatible : must be one of following:
  - "fsl,imx6q-tempmon" for i.MX6Q,
  - "fsl,imx6sx-tempmon" for i.MX6SX,
  - "fsl,imx7d-tempmon" for i.MX7S/D.
- interrupts : the interrupt output of the controller:
  i.MX6Q has one IRQ which will be triggered when temperature is higher than high threshold,
  i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW and the other is IRQ_PANIC,
  when temperature is below than low threshold, IRQ_LOW will be triggered, when temperature
  is higher than panic threshold, system will auto reboot by SRC module.
- fsl,tempmon : phandle pointer to system controller that contains TEMPMON
  control registers, e.g. ANATOP on imx6q.
- nvmem-cells: A phandle to the calibration cells provided by ocotp.
- nvmem-cell-names: Should be "calib", "temp_grade".

Deprecated properties:
- fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON
  calibration data, e.g. OCOTP on imx6q.  The details about calibration data
  can be found in SoC Reference Manual.

Direct access to OCOTP via fsl,tempmon-data is incorrect on some newer chips
because it does not handle OCOTP clock requirements.

Optional properties:
- clocks : thermal sensor's clock source.

Example:
ocotp: ocotp@21bc000 {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "fsl,imx6sx-ocotp", "syscon";
	reg = <0x021bc000 0x4000>;
	clocks = <&clks IMX6SX_CLK_OCOTP>;

	tempmon_calib: calib@38 {
		reg = <0x38 4>;
	};

	tempmon_temp_grade: temp-grade@20 {
		reg = <0x20 4>;
	};
};

tempmon: tempmon {
	compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
	interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
	fsl,tempmon = <&anatop>;
	nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
	nvmem-cell-names = "calib", "temp_grade";
	clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
};

Legacy method (Deprecated):
tempmon {
	compatible = "fsl,imx6q-tempmon";
	fsl,tempmon = <&anatop>;
	fsl,tempmon-data = <&ocotp>;
	clocks = <&clks 172>;
};
+102 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP i.MX Thermal Binding

maintainers:
  - Shawn Guo <shawn.guo@linaro.org>
  - Anson Huang <Anson.Huang@nxp.com>

properties:
  compatible:
    enum:
      - fsl,imx6q-tempmon
      - fsl,imx6sx-tempmon
      - fsl,imx7d-tempmon

  interrupts:
    description: |
      The interrupt output of the controller, i.MX6Q has IRQ_HIGH which
      will be triggered when temperature is higher than high threshold,
      i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW
      and the other is IRQ_PANIC, when temperature is lower than low
      threshold, IRQ_LOW will be triggered, when temperature is higher
      than panic threshold, IRQ_PANIC will be triggered, and system can
      be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH,
      IRQ_LOW and IRQ_PANIC share same interrupt output of controller.
    maxItems: 1

  nvmem-cells:
    items:
      - description: Phandle to the calibration data provided by ocotp
      - description: Phandle to the temperature grade provided by ocotp

  nvmem-cell-names:
    items:
      - const: calib
      - const: temp_grade

  fsl,tempmon:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description: Phandle to anatop system controller node.

  fsl,tempmon-data:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description: |
      Deprecated property, phandle pointer to fuse controller that contains
      TEMPMON calibration data, e.g. OCOTP on imx6q. The details about
      calibration data can be found in SoC Reference Manual.
    deprecated: true

  clocks:
    maxItems: 1

required:
  - compatible
  - interrupts
  - fsl,tempmon
  - nvmem-cells
  - nvmem-cell-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx6sx-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    efuse@21bc000 {
         #address-cells = <1>;
         #size-cells = <1>;
         compatible = "fsl,imx6sx-ocotp", "syscon";
         reg = <0x021bc000 0x4000>;
         clocks = <&clks IMX6SX_CLK_OCOTP>;

         tempmon_calib: calib@38 {
             reg = <0x38 4>;
         };

         tempmon_temp_grade: temp-grade@20 {
             reg = <0x20 4>;
         };
    };

    anatop@20c8000 {
        compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
        reg = <0x020c8000 0x1000>;
        interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
                     <0 54 IRQ_TYPE_LEVEL_HIGH>,
                     <0 127 IRQ_TYPE_LEVEL_HIGH>;

        tempmon {
             compatible = "fsl,imx6sx-tempmon";
             interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
             fsl,tempmon = <&anatop>;
             nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
             nvmem-cell-names = "calib", "temp_grade";
             clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
        };
    };