18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci# Copyright (C) 2020 BAIKAL ELECTRONICS, JSC
38c2ecf20Sopenharmony_ci%YAML 1.2
48c2ecf20Sopenharmony_ci---
58c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/hwmon/baikal,bt1-pvt.yaml#
68c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cititle: Baikal-T1 PVT Sensor
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cimaintainers:
118c2ecf20Sopenharmony_ci  - Serge Semin <fancer.lancer@gmail.com>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription: |
148c2ecf20Sopenharmony_ci  Baikal-T1 SoC provides an embedded process, voltage and temperature
158c2ecf20Sopenharmony_ci  sensor to monitor an internal SoC environment (chip temperature, supply
168c2ecf20Sopenharmony_ci  voltage and process monitor) and on time detect critical situations,
178c2ecf20Sopenharmony_ci  which may cause the system instability and even damages. The IP-block
188c2ecf20Sopenharmony_ci  is based on the Analog Bits PVT sensor, but is equipped with a dedicated
198c2ecf20Sopenharmony_ci  control wrapper, which provides a MMIO registers-based access to the
208c2ecf20Sopenharmony_ci  sensor core functionality (APB3-bus based) and exposes an additional
218c2ecf20Sopenharmony_ci  functions like thresholds/data ready interrupts, its status and masks,
228c2ecf20Sopenharmony_ci  measurements timeout. Its internal structure is depicted on the next
238c2ecf20Sopenharmony_ci  diagram:
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci     Analog Bits core                     Bakal-T1 PVT control block
268c2ecf20Sopenharmony_ci  +--------------------+                  +------------------------+
278c2ecf20Sopenharmony_ci  | Temperature sensor |-+         +------| Sensors control        |
288c2ecf20Sopenharmony_ci  |--------------------| |<---En---|      |------------------------|
298c2ecf20Sopenharmony_ci  | Voltage sensor     |-|<--Mode--| +--->| Sampled data           |
308c2ecf20Sopenharmony_ci  |--------------------| |<--Trim--+ |    |------------------------|
318c2ecf20Sopenharmony_ci  | Low-Vt sensor      |-|           | +--| Thresholds comparator  |
328c2ecf20Sopenharmony_ci  |--------------------| |---Data----| |  |------------------------|
338c2ecf20Sopenharmony_ci  | High-Vt sensor     |-|           | +->| Interrupts status      |
348c2ecf20Sopenharmony_ci  |--------------------| |--Valid--+-+ |  |------------------------|
358c2ecf20Sopenharmony_ci  | Standard-Vt sensor |-+         +---+--| Interrupts mask        |
368c2ecf20Sopenharmony_ci  +--------------------+                  |------------------------|
378c2ecf20Sopenharmony_ci           ^                              | Interrupts timeout     |
388c2ecf20Sopenharmony_ci           |                              +------------------------+
398c2ecf20Sopenharmony_ci           |                                        ^  ^
408c2ecf20Sopenharmony_ci  Rclk-----+----------------------------------------+  |
418c2ecf20Sopenharmony_ci  APB3-------------------------------------------------+
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  This bindings describes the external Baikal-T1 PVT control interfaces
448c2ecf20Sopenharmony_ci  like MMIO registers space, interrupt request number and clocks source.
458c2ecf20Sopenharmony_ci  These are then used by the corresponding hwmon device driver to
468c2ecf20Sopenharmony_ci  implement the sysfs files-based access to the sensors functionality.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciproperties:
498c2ecf20Sopenharmony_ci  compatible:
508c2ecf20Sopenharmony_ci    const: baikal,bt1-pvt
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci  reg:
538c2ecf20Sopenharmony_ci    maxItems: 1
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci  interrupts:
568c2ecf20Sopenharmony_ci    maxItems: 1
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  clocks:
598c2ecf20Sopenharmony_ci    items:
608c2ecf20Sopenharmony_ci      - description: PVT reference clock
618c2ecf20Sopenharmony_ci      - description: APB3 interface clock
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci  clock-names:
648c2ecf20Sopenharmony_ci    items:
658c2ecf20Sopenharmony_ci      - const: ref
668c2ecf20Sopenharmony_ci      - const: pclk
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci  "#thermal-sensor-cells":
698c2ecf20Sopenharmony_ci    description: Baikal-T1 can be referenced as the CPU thermal-sensor
708c2ecf20Sopenharmony_ci    const: 0
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci  baikal,pvt-temp-offset-millicelsius:
738c2ecf20Sopenharmony_ci    description: |
748c2ecf20Sopenharmony_ci      Temperature sensor trimming factor. It can be used to manually adjust the
758c2ecf20Sopenharmony_ci      temperature measurements within 7.130 degrees Celsius.
768c2ecf20Sopenharmony_ci    maxItems: 1
778c2ecf20Sopenharmony_ci    items:
788c2ecf20Sopenharmony_ci      default: 0
798c2ecf20Sopenharmony_ci      minimum: 0
808c2ecf20Sopenharmony_ci      maximum: 7130
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciadditionalProperties: false
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_cirequired:
858c2ecf20Sopenharmony_ci  - compatible
868c2ecf20Sopenharmony_ci  - reg
878c2ecf20Sopenharmony_ci  - interrupts
888c2ecf20Sopenharmony_ci  - clocks
898c2ecf20Sopenharmony_ci  - clock-names
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ciexamples:
928c2ecf20Sopenharmony_ci  - |
938c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/mips-gic.h>
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci    pvt@1f200000 {
968c2ecf20Sopenharmony_ci      compatible = "baikal,bt1-pvt";
978c2ecf20Sopenharmony_ci      reg = <0x1f200000 0x1000>;
988c2ecf20Sopenharmony_ci      #thermal-sensor-cells = <0>;
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci      interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>;
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci      baikal,pvt-temp-offset-millicelsius = <1000>;
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci      clocks = <&ccu_sys>, <&ccu_sys>;
1058c2ecf20Sopenharmony_ci      clock-names = "ref", "pclk";
1068c2ecf20Sopenharmony_ci    };
1078c2ecf20Sopenharmony_ci...
108