16be33864SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 26be33864SEmmanuel Vadot%YAML 1.2 36be33864SEmmanuel Vadot--- 46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/hwmon/moortec,mr75203.yaml# 56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 66be33864SEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Moortec Semiconductor MR75203 PVT Controller 86be33864SEmmanuel Vadot 96be33864SEmmanuel Vadotmaintainers: 106be33864SEmmanuel Vadot - Rahul Tanwar <rtanwar@maxlinear.com> 116be33864SEmmanuel Vadot 127ef62cebSEmmanuel Vadotdescription: | 137ef62cebSEmmanuel Vadot A Moortec PVT (Process, Voltage, Temperature) monitoring logic design can 147ef62cebSEmmanuel Vadot include many different units. 157ef62cebSEmmanuel Vadot Such a design will usually consists of several Moortec's embedded analog IPs, 167ef62cebSEmmanuel Vadot and a single Moortec controller (mr75203) to configure and control the IPs. 177ef62cebSEmmanuel Vadot 187ef62cebSEmmanuel Vadot Some of the Moortec's analog hard IPs that can be used in a design: 197ef62cebSEmmanuel Vadot *) Temperature Sensor (TS) - used to monitor core temperature (e.g. mr74137). 207ef62cebSEmmanuel Vadot *) Voltage Monitor (VM) - used to monitor voltage levels (e.g. mr74138). 217ef62cebSEmmanuel Vadot *) Process Detector (PD) - used to assess silicon speed (e.g. mr74139). 227ef62cebSEmmanuel Vadot *) Delay Chain - ring oscillator connected to the PD, used to measure IO 237ef62cebSEmmanuel Vadot based transistors (e.g. mr76008 ring oscillator at 1.1V, mr76007 ring 247ef62cebSEmmanuel Vadot oscillator at 1.8V). 257ef62cebSEmmanuel Vadot *) Pre Scaler - provides divide-by-X scaling of input voltage, which can then 267ef62cebSEmmanuel Vadot be presented for VM for measurement within its range (e.g. mr76006 - 277ef62cebSEmmanuel Vadot divide by 2 pre-scaler). 287ef62cebSEmmanuel Vadot 297ef62cebSEmmanuel Vadot TS, VM & PD also include a digital interface, which consists of configuration 307ef62cebSEmmanuel Vadot inputs and measurement outputs. 317ef62cebSEmmanuel Vadot 327ef62cebSEmmanuel Vadot Some of the units have number of series, each series can have slightly 337ef62cebSEmmanuel Vadot different characteristics. 347ef62cebSEmmanuel Vadot 357ef62cebSEmmanuel Vadot The mr75203 binding describes configuration for the controller unit, but also 367ef62cebSEmmanuel Vadot for some of the analog IPs. 377ef62cebSEmmanuel Vadot 386be33864SEmmanuel Vadotproperties: 396be33864SEmmanuel Vadot compatible: 406be33864SEmmanuel Vadot const: moortec,mr75203 416be33864SEmmanuel Vadot 426be33864SEmmanuel Vadot reg: 436be33864SEmmanuel Vadot items: 446be33864SEmmanuel Vadot - description: PVT common registers 45*aa1a8ff2SEmmanuel Vadot - description: PVT temperature sensor registers 466be33864SEmmanuel Vadot - description: PVT process detector registers 476be33864SEmmanuel Vadot - description: PVT voltage monitor registers 486be33864SEmmanuel Vadot 496be33864SEmmanuel Vadot reg-names: 506be33864SEmmanuel Vadot items: 516be33864SEmmanuel Vadot - const: common 526be33864SEmmanuel Vadot - const: ts 536be33864SEmmanuel Vadot - const: pd 546be33864SEmmanuel Vadot - const: vm 556be33864SEmmanuel Vadot 566be33864SEmmanuel Vadot intel,vm-map: 576be33864SEmmanuel Vadot description: 586be33864SEmmanuel Vadot PVT controller has 5 VM (voltage monitor) sensors. 596be33864SEmmanuel Vadot vm-map defines CPU core to VM instance mapping. A 606be33864SEmmanuel Vadot value of 0xff means that VM sensor is unused. 615def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8-array 626be33864SEmmanuel Vadot maxItems: 5 636be33864SEmmanuel Vadot 646be33864SEmmanuel Vadot clocks: 656be33864SEmmanuel Vadot maxItems: 1 666be33864SEmmanuel Vadot 676be33864SEmmanuel Vadot resets: 686be33864SEmmanuel Vadot maxItems: 1 696be33864SEmmanuel Vadot 706be33864SEmmanuel Vadot "#thermal-sensor-cells": 716be33864SEmmanuel Vadot const: 1 726be33864SEmmanuel Vadot 737ef62cebSEmmanuel Vadot moortec,vm-active-channels: 747ef62cebSEmmanuel Vadot description: 757ef62cebSEmmanuel Vadot Defines the number of channels per VM that are actually used and are 767ef62cebSEmmanuel Vadot connected to some input source. 777ef62cebSEmmanuel Vadot Maximum number of items - number of VMs. 787ef62cebSEmmanuel Vadot Maximum value of each item - number of channels. 797ef62cebSEmmanuel Vadot Minimum value of each item - 0 (which means entire VM sensor is not used). 807ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8-array 817ef62cebSEmmanuel Vadot 827ef62cebSEmmanuel Vadot moortec,vm-pre-scaler-x2: 837ef62cebSEmmanuel Vadot description: 847ef62cebSEmmanuel Vadot Defines the channels that use a mr76006 pre-scaler to divide the input 857ef62cebSEmmanuel Vadot source by 2. 867ef62cebSEmmanuel Vadot The pre-scaler is used for input sources that exceed the VM input range. 877ef62cebSEmmanuel Vadot The driver uses this information to present to the user with the actual 887ef62cebSEmmanuel Vadot value of the voltage source. 897ef62cebSEmmanuel Vadot For channels that are not listed, no pre-scaler is assumed. 907ef62cebSEmmanuel Vadot Maximum number of items - total number of channels in all VMs. 917ef62cebSEmmanuel Vadot Each channel should not appear more than once. 927ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8-array 937ef62cebSEmmanuel Vadot 947ef62cebSEmmanuel Vadot moortec,ts-series: 957ef62cebSEmmanuel Vadot description: 967ef62cebSEmmanuel Vadot Definition of the temperature equation and coefficients that shall be 977ef62cebSEmmanuel Vadot used to convert the digital output to value in milli-Celsius. 987ef62cebSEmmanuel Vadot minimum: 5 997ef62cebSEmmanuel Vadot maximum: 6 1007ef62cebSEmmanuel Vadot default: 5 1017ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1027ef62cebSEmmanuel Vadot 1037ef62cebSEmmanuel Vadot moortec,ts-coeff-g: 1047ef62cebSEmmanuel Vadot description: 1057ef62cebSEmmanuel Vadot G coefficient for temperature equation. 1067ef62cebSEmmanuel Vadot Default for series 5 = 60000 1077ef62cebSEmmanuel Vadot Default for series 6 = 57400 108f126890aSEmmanuel Vadot multipleOf: 100 1097ef62cebSEmmanuel Vadot minimum: 1000 1107ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1117ef62cebSEmmanuel Vadot 1127ef62cebSEmmanuel Vadot moortec,ts-coeff-h: 1137ef62cebSEmmanuel Vadot description: 1147ef62cebSEmmanuel Vadot H coefficient for temperature equation. 1157ef62cebSEmmanuel Vadot Default for series 5 = 200000 1167ef62cebSEmmanuel Vadot Default for series 6 = 249400 117f126890aSEmmanuel Vadot multipleOf: 100 1187ef62cebSEmmanuel Vadot minimum: 1000 1197ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1207ef62cebSEmmanuel Vadot 1217ef62cebSEmmanuel Vadot moortec,ts-coeff-cal5: 1227ef62cebSEmmanuel Vadot description: 1237ef62cebSEmmanuel Vadot cal5 coefficient for temperature equation. 1247ef62cebSEmmanuel Vadot Default for series 5 = 4094 1257ef62cebSEmmanuel Vadot Default for series 6 = 4096 1267ef62cebSEmmanuel Vadot minimum: 1 1277ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1287ef62cebSEmmanuel Vadot 1297ef62cebSEmmanuel Vadot moortec,ts-coeff-j: 1307ef62cebSEmmanuel Vadot description: 1317ef62cebSEmmanuel Vadot J coefficient for temperature equation. 1327ef62cebSEmmanuel Vadot Default for series 5 = -100 1337ef62cebSEmmanuel Vadot Default for series 6 = 0 134f126890aSEmmanuel Vadot multipleOf: 100 1357ef62cebSEmmanuel Vadot maximum: 0 1367ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/int32 1377ef62cebSEmmanuel Vadot 1386be33864SEmmanuel Vadotrequired: 1396be33864SEmmanuel Vadot - compatible 1406be33864SEmmanuel Vadot - reg 1416be33864SEmmanuel Vadot - reg-names 1426be33864SEmmanuel Vadot - clocks 1436be33864SEmmanuel Vadot - "#thermal-sensor-cells" 1446be33864SEmmanuel Vadot 1456be33864SEmmanuel VadotadditionalProperties: false 1466be33864SEmmanuel Vadot 1476be33864SEmmanuel Vadotexamples: 1486be33864SEmmanuel Vadot - | 1496be33864SEmmanuel Vadot pvt: pvt@e0680000 { 1506be33864SEmmanuel Vadot compatible = "moortec,mr75203"; 1516be33864SEmmanuel Vadot reg = <0xe0680000 0x80>, 1526be33864SEmmanuel Vadot <0xe0680080 0x180>, 1536be33864SEmmanuel Vadot <0xe0680200 0x200>, 1546be33864SEmmanuel Vadot <0xe0680400 0xc00>; 1556be33864SEmmanuel Vadot reg-names = "common", "ts", "pd", "vm"; 1566be33864SEmmanuel Vadot intel,vm-map = [03 01 04 ff ff]; 1576be33864SEmmanuel Vadot clocks = <&osc0>; 1586be33864SEmmanuel Vadot resets = <&rcu0 0x40 7>; 1597ef62cebSEmmanuel Vadot moortec,vm-active-channels = /bits/ 8 <0x10 0x05>; 1607ef62cebSEmmanuel Vadot moortec,vm-pre-scaler-x2 = /bits/ 8 <5 6 20>; 1617ef62cebSEmmanuel Vadot moortec,ts-coeff-g = <61400>; 1627ef62cebSEmmanuel Vadot moortec,ts-coeff-h = <253700>; 1636be33864SEmmanuel Vadot #thermal-sensor-cells = <1>; 1646be33864SEmmanuel Vadot }; 165