1ddc65caaSSerge Semin# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2ddc65caaSSerge Semin# Copyright (C) 2020 BAIKAL ELECTRONICS, JSC 3ddc65caaSSerge Semin%YAML 1.2 4ddc65caaSSerge Semin--- 5ddc65caaSSerge Semin$id: http://devicetree.org/schemas/hwmon/baikal,bt1-pvt.yaml# 6ddc65caaSSerge Semin$schema: http://devicetree.org/meta-schemas/core.yaml# 7ddc65caaSSerge Semin 8ddc65caaSSerge Semintitle: Baikal-T1 PVT Sensor 9ddc65caaSSerge Semin 10ddc65caaSSerge Seminmaintainers: 11ddc65caaSSerge Semin - Serge Semin <fancer.lancer@gmail.com> 12ddc65caaSSerge Semin 13ddc65caaSSerge Semindescription: | 14ddc65caaSSerge Semin Baikal-T1 SoC provides an embedded process, voltage and temperature 15ddc65caaSSerge Semin sensor to monitor an internal SoC environment (chip temperature, supply 16ddc65caaSSerge Semin voltage and process monitor) and on time detect critical situations, 17ddc65caaSSerge Semin which may cause the system instability and even damages. The IP-block 18ddc65caaSSerge Semin is based on the Analog Bits PVT sensor, but is equipped with a dedicated 19ddc65caaSSerge Semin control wrapper, which provides a MMIO registers-based access to the 20ddc65caaSSerge Semin sensor core functionality (APB3-bus based) and exposes an additional 21ddc65caaSSerge Semin functions like thresholds/data ready interrupts, its status and masks, 22ddc65caaSSerge Semin measurements timeout. Its internal structure is depicted on the next 23ddc65caaSSerge Semin diagram: 24ddc65caaSSerge Semin 25ddc65caaSSerge Semin Analog Bits core Bakal-T1 PVT control block 26ddc65caaSSerge Semin +--------------------+ +------------------------+ 27ddc65caaSSerge Semin | Temperature sensor |-+ +------| Sensors control | 28ddc65caaSSerge Semin |--------------------| |<---En---| |------------------------| 29ddc65caaSSerge Semin | Voltage sensor |-|<--Mode--| +--->| Sampled data | 30ddc65caaSSerge Semin |--------------------| |<--Trim--+ | |------------------------| 31ddc65caaSSerge Semin | Low-Vt sensor |-| | +--| Thresholds comparator | 32ddc65caaSSerge Semin |--------------------| |---Data----| | |------------------------| 33ddc65caaSSerge Semin | High-Vt sensor |-| | +->| Interrupts status | 34ddc65caaSSerge Semin |--------------------| |--Valid--+-+ | |------------------------| 35ddc65caaSSerge Semin | Standard-Vt sensor |-+ +---+--| Interrupts mask | 36ddc65caaSSerge Semin +--------------------+ |------------------------| 37ddc65caaSSerge Semin ^ | Interrupts timeout | 38ddc65caaSSerge Semin | +------------------------+ 39ddc65caaSSerge Semin | ^ ^ 40ddc65caaSSerge Semin Rclk-----+----------------------------------------+ | 41ddc65caaSSerge Semin APB3-------------------------------------------------+ 42ddc65caaSSerge Semin 43ddc65caaSSerge Semin This bindings describes the external Baikal-T1 PVT control interfaces 44ddc65caaSSerge Semin like MMIO registers space, interrupt request number and clocks source. 45ddc65caaSSerge Semin These are then used by the corresponding hwmon device driver to 46ddc65caaSSerge Semin implement the sysfs files-based access to the sensors functionality. 47ddc65caaSSerge Semin 48ddc65caaSSerge Seminproperties: 49ddc65caaSSerge Semin compatible: 50ddc65caaSSerge Semin const: baikal,bt1-pvt 51ddc65caaSSerge Semin 52ddc65caaSSerge Semin reg: 53ddc65caaSSerge Semin maxItems: 1 54ddc65caaSSerge Semin 55ddc65caaSSerge Semin interrupts: 56ddc65caaSSerge Semin maxItems: 1 57ddc65caaSSerge Semin 58ddc65caaSSerge Semin clocks: 59ddc65caaSSerge Semin items: 60ddc65caaSSerge Semin - description: PVT reference clock 61ddc65caaSSerge Semin - description: APB3 interface clock 62ddc65caaSSerge Semin 63ddc65caaSSerge Semin clock-names: 64ddc65caaSSerge Semin items: 65ddc65caaSSerge Semin - const: ref 66ddc65caaSSerge Semin - const: pclk 67ddc65caaSSerge Semin 68ddc65caaSSerge Semin "#thermal-sensor-cells": 69ddc65caaSSerge Semin description: Baikal-T1 can be referenced as the CPU thermal-sensor 70ddc65caaSSerge Semin const: 0 71ddc65caaSSerge Semin 72ddc65caaSSerge Semin baikal,pvt-temp-offset-millicelsius: 73ddc65caaSSerge Semin description: | 74ddc65caaSSerge Semin Temperature sensor trimming factor. It can be used to manually adjust the 75ddc65caaSSerge Semin temperature measurements within 7.130 degrees Celsius. 76ddc65caaSSerge Semin default: 0 77ddc65caaSSerge Semin minimum: 0 78ddc65caaSSerge Semin maximum: 7130 79ddc65caaSSerge Semin 80*4828556dSRob HerringadditionalProperties: false 81ddc65caaSSerge Semin 82ddc65caaSSerge Seminrequired: 83ddc65caaSSerge Semin - compatible 84ddc65caaSSerge Semin - reg 85ddc65caaSSerge Semin - interrupts 86ddc65caaSSerge Semin - clocks 87ddc65caaSSerge Semin - clock-names 88ddc65caaSSerge Semin 89ddc65caaSSerge Seminexamples: 90ddc65caaSSerge Semin - | 91ddc65caaSSerge Semin #include <dt-bindings/interrupt-controller/mips-gic.h> 92ddc65caaSSerge Semin 93ddc65caaSSerge Semin pvt@1f200000 { 94ddc65caaSSerge Semin compatible = "baikal,bt1-pvt"; 95ddc65caaSSerge Semin reg = <0x1f200000 0x1000>; 96ddc65caaSSerge Semin #thermal-sensor-cells = <0>; 97ddc65caaSSerge Semin 98ddc65caaSSerge Semin interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>; 99ddc65caaSSerge Semin 100*4828556dSRob Herring baikal,pvt-temp-offset-millicelsius = <1000>; 101ddc65caaSSerge Semin 102ddc65caaSSerge Semin clocks = <&ccu_sys>, <&ccu_sys>; 103ddc65caaSSerge Semin clock-names = "ref", "pclk"; 104ddc65caaSSerge Semin }; 105ddc65caaSSerge Semin... 106