162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/hwmon/moortec,mr75203.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Moortec Semiconductor MR75203 PVT Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Rahul Tanwar <rtanwar@maxlinear.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci A Moortec PVT (Process, Voltage, Temperature) monitoring logic design can 1462306a36Sopenharmony_ci include many different units. 1562306a36Sopenharmony_ci Such a design will usually consists of several Moortec's embedded analog IPs, 1662306a36Sopenharmony_ci and a single Moortec controller (mr75203) to configure and control the IPs. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci Some of the Moortec's analog hard IPs that can be used in a design: 1962306a36Sopenharmony_ci *) Temperature Sensor (TS) - used to monitor core temperature (e.g. mr74137). 2062306a36Sopenharmony_ci *) Voltage Monitor (VM) - used to monitor voltage levels (e.g. mr74138). 2162306a36Sopenharmony_ci *) Process Detector (PD) - used to assess silicon speed (e.g. mr74139). 2262306a36Sopenharmony_ci *) Delay Chain - ring oscillator connected to the PD, used to measure IO 2362306a36Sopenharmony_ci based transistors (e.g. mr76008 ring oscillator at 1.1V, mr76007 ring 2462306a36Sopenharmony_ci oscillator at 1.8V). 2562306a36Sopenharmony_ci *) Pre Scaler - provides divide-by-X scaling of input voltage, which can then 2662306a36Sopenharmony_ci be presented for VM for measurement within its range (e.g. mr76006 - 2762306a36Sopenharmony_ci divide by 2 pre-scaler). 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci TS, VM & PD also include a digital interface, which consists of configuration 3062306a36Sopenharmony_ci inputs and measurement outputs. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci Some of the units have number of series, each series can have slightly 3362306a36Sopenharmony_ci different characteristics. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci The mr75203 binding describes configuration for the controller unit, but also 3662306a36Sopenharmony_ci for some of the analog IPs. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciproperties: 3962306a36Sopenharmony_ci compatible: 4062306a36Sopenharmony_ci const: moortec,mr75203 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci reg: 4362306a36Sopenharmony_ci items: 4462306a36Sopenharmony_ci - description: PVT common registers 4562306a36Sopenharmony_ci - description: PVT temperature sensor registers 4662306a36Sopenharmony_ci - description: PVT process detector registers 4762306a36Sopenharmony_ci - description: PVT voltage monitor registers 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci reg-names: 5062306a36Sopenharmony_ci items: 5162306a36Sopenharmony_ci - const: common 5262306a36Sopenharmony_ci - const: ts 5362306a36Sopenharmony_ci - const: pd 5462306a36Sopenharmony_ci - const: vm 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci intel,vm-map: 5762306a36Sopenharmony_ci description: 5862306a36Sopenharmony_ci PVT controller has 5 VM (voltage monitor) sensors. 5962306a36Sopenharmony_ci vm-map defines CPU core to VM instance mapping. A 6062306a36Sopenharmony_ci value of 0xff means that VM sensor is unused. 6162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint8-array 6262306a36Sopenharmony_ci maxItems: 5 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci clocks: 6562306a36Sopenharmony_ci maxItems: 1 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci resets: 6862306a36Sopenharmony_ci maxItems: 1 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci "#thermal-sensor-cells": 7162306a36Sopenharmony_ci const: 1 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci moortec,vm-active-channels: 7462306a36Sopenharmony_ci description: 7562306a36Sopenharmony_ci Defines the number of channels per VM that are actually used and are 7662306a36Sopenharmony_ci connected to some input source. 7762306a36Sopenharmony_ci Maximum number of items - number of VMs. 7862306a36Sopenharmony_ci Maximum value of each item - number of channels. 7962306a36Sopenharmony_ci Minimum value of each item - 0 (which means entire VM sensor is not used). 8062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint8-array 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci moortec,vm-pre-scaler-x2: 8362306a36Sopenharmony_ci description: 8462306a36Sopenharmony_ci Defines the channels that use a mr76006 pre-scaler to divide the input 8562306a36Sopenharmony_ci source by 2. 8662306a36Sopenharmony_ci The pre-scaler is used for input sources that exceed the VM input range. 8762306a36Sopenharmony_ci The driver uses this information to present to the user with the actual 8862306a36Sopenharmony_ci value of the voltage source. 8962306a36Sopenharmony_ci For channels that are not listed, no pre-scaler is assumed. 9062306a36Sopenharmony_ci Maximum number of items - total number of channels in all VMs. 9162306a36Sopenharmony_ci Each channel should not appear more than once. 9262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint8-array 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci moortec,ts-series: 9562306a36Sopenharmony_ci description: 9662306a36Sopenharmony_ci Definition of the temperature equation and coefficients that shall be 9762306a36Sopenharmony_ci used to convert the digital output to value in milli-Celsius. 9862306a36Sopenharmony_ci minimum: 5 9962306a36Sopenharmony_ci maximum: 6 10062306a36Sopenharmony_ci default: 5 10162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci moortec,ts-coeff-g: 10462306a36Sopenharmony_ci description: 10562306a36Sopenharmony_ci G coefficient for temperature equation. 10662306a36Sopenharmony_ci Default for series 5 = 60000 10762306a36Sopenharmony_ci Default for series 6 = 57400 10862306a36Sopenharmony_ci multipleOf: 100 10962306a36Sopenharmony_ci minimum: 1000 11062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci moortec,ts-coeff-h: 11362306a36Sopenharmony_ci description: 11462306a36Sopenharmony_ci H coefficient for temperature equation. 11562306a36Sopenharmony_ci Default for series 5 = 200000 11662306a36Sopenharmony_ci Default for series 6 = 249400 11762306a36Sopenharmony_ci multipleOf: 100 11862306a36Sopenharmony_ci minimum: 1000 11962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci moortec,ts-coeff-cal5: 12262306a36Sopenharmony_ci description: 12362306a36Sopenharmony_ci cal5 coefficient for temperature equation. 12462306a36Sopenharmony_ci Default for series 5 = 4094 12562306a36Sopenharmony_ci Default for series 6 = 4096 12662306a36Sopenharmony_ci minimum: 1 12762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci moortec,ts-coeff-j: 13062306a36Sopenharmony_ci description: 13162306a36Sopenharmony_ci J coefficient for temperature equation. 13262306a36Sopenharmony_ci Default for series 5 = -100 13362306a36Sopenharmony_ci Default for series 6 = 0 13462306a36Sopenharmony_ci multipleOf: 100 13562306a36Sopenharmony_ci maximum: 0 13662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/int32 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_cirequired: 13962306a36Sopenharmony_ci - compatible 14062306a36Sopenharmony_ci - reg 14162306a36Sopenharmony_ci - reg-names 14262306a36Sopenharmony_ci - clocks 14362306a36Sopenharmony_ci - "#thermal-sensor-cells" 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ciadditionalProperties: false 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciexamples: 14862306a36Sopenharmony_ci - | 14962306a36Sopenharmony_ci pvt: pvt@e0680000 { 15062306a36Sopenharmony_ci compatible = "moortec,mr75203"; 15162306a36Sopenharmony_ci reg = <0xe0680000 0x80>, 15262306a36Sopenharmony_ci <0xe0680080 0x180>, 15362306a36Sopenharmony_ci <0xe0680200 0x200>, 15462306a36Sopenharmony_ci <0xe0680400 0xc00>; 15562306a36Sopenharmony_ci reg-names = "common", "ts", "pd", "vm"; 15662306a36Sopenharmony_ci intel,vm-map = [03 01 04 ff ff]; 15762306a36Sopenharmony_ci clocks = <&osc0>; 15862306a36Sopenharmony_ci resets = <&rcu0 0x40 7>; 15962306a36Sopenharmony_ci moortec,vm-active-channels = /bits/ 8 <0x10 0x05>; 16062306a36Sopenharmony_ci moortec,vm-pre-scaler-x2 = /bits/ 8 <5 6 20>; 16162306a36Sopenharmony_ci moortec,ts-coeff-g = <61400>; 16262306a36Sopenharmony_ci moortec,ts-coeff-h = <253700>; 16362306a36Sopenharmony_ci #thermal-sensor-cells = <1>; 16462306a36Sopenharmony_ci }; 165