^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: NXP i.MX Thermal Binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Shawn Guo <shawnguo@kernel.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - Anson Huang <Anson.Huang@nxp.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - fsl,imx6q-tempmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - fsl,imx6sx-tempmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - fsl,imx7d-tempmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) The interrupt output of the controller, i.MX6Q has IRQ_HIGH which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) will be triggered when temperature is higher than high threshold,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) and the other is IRQ_PANIC, when temperature is lower than low
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) threshold, IRQ_LOW will be triggered, when temperature is higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) than panic threshold, IRQ_PANIC will be triggered, and system can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) IRQ_LOW and IRQ_PANIC share same interrupt output of controller.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) nvmem-cells:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - description: Phandle to the calibration data provided by ocotp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - description: Phandle to the temperature grade provided by ocotp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) nvmem-cell-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - const: calib
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - const: temp_grade
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) fsl,tempmon:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) $ref: '/schemas/types.yaml#/definitions/phandle'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) description: Phandle to anatop system controller node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) fsl,tempmon-data:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) $ref: '/schemas/types.yaml#/definitions/phandle'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Deprecated property, phandle pointer to fuse controller that contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TEMPMON calibration data, e.g. OCOTP on imx6q. The details about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) calibration data can be found in SoC Reference Manual.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) deprecated: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) - fsl,tempmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - nvmem-cells
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) - nvmem-cell-names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #include <dt-bindings/clock/imx6sx-clock.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #include <dt-bindings/interrupt-controller/arm-gic.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) efuse@21bc000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) compatible = "fsl,imx6sx-ocotp", "syscon";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) reg = <0x021bc000 0x4000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) clocks = <&clks IMX6SX_CLK_OCOTP>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) tempmon_calib: calib@38 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) reg = <0x38 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) tempmon_temp_grade: temp-grade@20 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) reg = <0x20 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) anatop@20c8000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) reg = <0x020c8000 0x1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) <0 54 IRQ_TYPE_LEVEL_HIGH>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) <0 127 IRQ_TYPE_LEVEL_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) tempmon {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) compatible = "fsl,imx6sx-tempmon";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) fsl,tempmon = <&anatop>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) nvmem-cell-names = "calib", "temp_grade";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) };