106 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | |
| # Copyright (C) 2020 BAIKAL ELECTRONICS, JSC
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/hwmon/baikal,bt1-pvt.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: Baikal-T1 PVT Sensor
 | |
| 
 | |
| maintainers:
 | |
|   - Serge Semin <fancer.lancer@gmail.com>
 | |
| 
 | |
| description: |
 | |
|   Baikal-T1 SoC provides an embedded process, voltage and temperature
 | |
|   sensor to monitor an internal SoC environment (chip temperature, supply
 | |
|   voltage and process monitor) and on time detect critical situations,
 | |
|   which may cause the system instability and even damages. The IP-block
 | |
|   is based on the Analog Bits PVT sensor, but is equipped with a dedicated
 | |
|   control wrapper, which provides a MMIO registers-based access to the
 | |
|   sensor core functionality (APB3-bus based) and exposes an additional
 | |
|   functions like thresholds/data ready interrupts, its status and masks,
 | |
|   measurements timeout. Its internal structure is depicted on the next
 | |
|   diagram:
 | |
| 
 | |
|      Analog Bits core                     Bakal-T1 PVT control block
 | |
|   +--------------------+                  +------------------------+
 | |
|   | Temperature sensor |-+         +------| Sensors control        |
 | |
|   |--------------------| |<---En---|      |------------------------|
 | |
|   | Voltage sensor     |-|<--Mode--| +--->| Sampled data           |
 | |
|   |--------------------| |<--Trim--+ |    |------------------------|
 | |
|   | Low-Vt sensor      |-|           | +--| Thresholds comparator  |
 | |
|   |--------------------| |---Data----| |  |------------------------|
 | |
|   | High-Vt sensor     |-|           | +->| Interrupts status      |
 | |
|   |--------------------| |--Valid--+-+ |  |------------------------|
 | |
|   | Standard-Vt sensor |-+         +---+--| Interrupts mask        |
 | |
|   +--------------------+                  |------------------------|
 | |
|            ^                              | Interrupts timeout     |
 | |
|            |                              +------------------------+
 | |
|            |                                        ^  ^
 | |
|   Rclk-----+----------------------------------------+  |
 | |
|   APB3-------------------------------------------------+
 | |
| 
 | |
|   This bindings describes the external Baikal-T1 PVT control interfaces
 | |
|   like MMIO registers space, interrupt request number and clocks source.
 | |
|   These are then used by the corresponding hwmon device driver to
 | |
|   implement the sysfs files-based access to the sensors functionality.
 | |
| 
 | |
| properties:
 | |
|   compatible:
 | |
|     const: baikal,bt1-pvt
 | |
| 
 | |
|   reg:
 | |
|     maxItems: 1
 | |
| 
 | |
|   interrupts:
 | |
|     maxItems: 1
 | |
| 
 | |
|   clocks:
 | |
|     items:
 | |
|       - description: PVT reference clock
 | |
|       - description: APB3 interface clock
 | |
| 
 | |
|   clock-names:
 | |
|     items:
 | |
|       - const: ref
 | |
|       - const: pclk
 | |
| 
 | |
|   "#thermal-sensor-cells":
 | |
|     description: Baikal-T1 can be referenced as the CPU thermal-sensor
 | |
|     const: 0
 | |
| 
 | |
|   baikal,pvt-temp-offset-millicelsius:
 | |
|     description: |
 | |
|       Temperature sensor trimming factor. It can be used to manually adjust the
 | |
|       temperature measurements within 7.130 degrees Celsius.
 | |
|     default: 0
 | |
|     minimum: 0
 | |
|     maximum: 7130
 | |
| 
 | |
| additionalProperties: false
 | |
| 
 | |
| required:
 | |
|   - compatible
 | |
|   - reg
 | |
|   - interrupts
 | |
|   - clocks
 | |
|   - clock-names
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     #include <dt-bindings/interrupt-controller/mips-gic.h>
 | |
| 
 | |
|     pvt@1f200000 {
 | |
|       compatible = "baikal,bt1-pvt";
 | |
|       reg = <0x1f200000 0x1000>;
 | |
|       #thermal-sensor-cells = <0>;
 | |
| 
 | |
|       interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>;
 | |
| 
 | |
|       baikal,pvt-temp-offset-millicelsius = <1000>;
 | |
| 
 | |
|       clocks = <&ccu_sys>, <&ccu_sys>;
 | |
|       clock-names = "ref", "pclk";
 | |
|     };
 | |
| ...
 |