xref: /freebsd/sys/contrib/device-tree/Bindings/hwmon/moortec,mr75203.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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