165 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/hwmon/moortec,mr75203.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: Moortec Semiconductor MR75203 PVT Controller bindings
 | |
| 
 | |
| maintainers:
 | |
|   - Rahul Tanwar <rtanwar@maxlinear.com>
 | |
| 
 | |
| description: |
 | |
|   A Moortec PVT (Process, Voltage, Temperature) monitoring logic design can
 | |
|   include many different units.
 | |
|   Such a design will usually consists of several Moortec's embedded analog IPs,
 | |
|   and a single Moortec controller (mr75203) to configure and control the IPs.
 | |
| 
 | |
|   Some of the Moortec's analog hard IPs that can be used in a design:
 | |
|   *) Temperature Sensor (TS) - used to monitor core temperature (e.g. mr74137).
 | |
|   *) Voltage Monitor (VM) - used to monitor voltage levels (e.g. mr74138).
 | |
|   *) Process Detector (PD) - used to assess silicon speed (e.g. mr74139).
 | |
|   *) Delay Chain - ring oscillator connected to the PD, used to measure IO
 | |
|      based transistors (e.g. mr76008 ring oscillator at 1.1V, mr76007 ring
 | |
|      oscillator at 1.8V).
 | |
|   *) Pre Scaler - provides divide-by-X scaling of input voltage, which can then
 | |
|      be presented for VM for measurement within its range (e.g. mr76006 -
 | |
|      divide by 2 pre-scaler).
 | |
| 
 | |
|   TS, VM & PD also include a digital interface, which consists of configuration
 | |
|   inputs and measurement outputs.
 | |
| 
 | |
|   Some of the units have number of series, each series can have slightly
 | |
|   different characteristics.
 | |
| 
 | |
|   The mr75203 binding describes configuration for the controller unit, but also
 | |
|   for some of the analog IPs.
 | |
| 
 | |
| properties:
 | |
|   compatible:
 | |
|     const: moortec,mr75203
 | |
| 
 | |
|   reg:
 | |
|     items:
 | |
|       - description: PVT common registers
 | |
|       - description: PVT temprature sensor registers
 | |
|       - description: PVT process detector registers
 | |
|       - description: PVT voltage monitor registers
 | |
| 
 | |
|   reg-names:
 | |
|     items:
 | |
|       - const: common
 | |
|       - const: ts
 | |
|       - const: pd
 | |
|       - const: vm
 | |
| 
 | |
|   intel,vm-map:
 | |
|     description:
 | |
|       PVT controller has 5 VM (voltage monitor) sensors.
 | |
|       vm-map defines CPU core to VM instance mapping. A
 | |
|       value of 0xff means that VM sensor is unused.
 | |
|     $ref: /schemas/types.yaml#/definitions/uint8-array
 | |
|     maxItems: 5
 | |
| 
 | |
|   clocks:
 | |
|     maxItems: 1
 | |
| 
 | |
|   resets:
 | |
|     maxItems: 1
 | |
| 
 | |
|   "#thermal-sensor-cells":
 | |
|     const: 1
 | |
| 
 | |
|   moortec,vm-active-channels:
 | |
|     description:
 | |
|       Defines the number of channels per VM that are actually used and are
 | |
|       connected to some input source.
 | |
|       Maximum number of items - number of VMs.
 | |
|       Maximum value of each item - number of channels.
 | |
|       Minimum value of each item - 0 (which means entire VM sensor is not used).
 | |
|     $ref: /schemas/types.yaml#/definitions/uint8-array
 | |
| 
 | |
|   moortec,vm-pre-scaler-x2:
 | |
|     description:
 | |
|       Defines the channels that use a mr76006 pre-scaler to divide the input
 | |
|       source by 2.
 | |
|       The pre-scaler is used for input sources that exceed the VM input range.
 | |
|       The driver uses this information to present to the user with the actual
 | |
|       value of the voltage source.
 | |
|       For channels that are not listed, no pre-scaler is assumed.
 | |
|       Maximum number of items - total number of channels in all VMs.
 | |
|       Each channel should not appear more than once.
 | |
|     $ref: /schemas/types.yaml#/definitions/uint8-array
 | |
| 
 | |
|   moortec,ts-series:
 | |
|     description:
 | |
|       Definition of the temperature equation and coefficients that shall be
 | |
|       used to convert the digital output to value in milli-Celsius.
 | |
|     minimum: 5
 | |
|     maximum: 6
 | |
|     default: 5
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   moortec,ts-coeff-g:
 | |
|     description:
 | |
|       G coefficient for temperature equation.
 | |
|       Default for series 5 = 60000
 | |
|       Default for series 6 = 57400
 | |
|     multipleOf: 1000
 | |
|     minimum: 1000
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   moortec,ts-coeff-h:
 | |
|     description:
 | |
|       H coefficient for temperature equation.
 | |
|       Default for series 5 = 200000
 | |
|       Default for series 6 = 249400
 | |
|     multipleOf: 1000
 | |
|     minimum: 1000
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   moortec,ts-coeff-cal5:
 | |
|     description:
 | |
|       cal5 coefficient for temperature equation.
 | |
|       Default for series 5 = 4094
 | |
|       Default for series 6 = 4096
 | |
|     minimum: 1
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   moortec,ts-coeff-j:
 | |
|     description:
 | |
|       J coefficient for temperature equation.
 | |
|       Default for series 5 = -100
 | |
|       Default for series 6 = 0
 | |
|     multipleOf: 1000
 | |
|     maximum: 0
 | |
|     $ref: /schemas/types.yaml#/definitions/int32
 | |
| 
 | |
| required:
 | |
|   - compatible
 | |
|   - reg
 | |
|   - reg-names
 | |
|   - clocks
 | |
|   - "#thermal-sensor-cells"
 | |
| 
 | |
| additionalProperties: false
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     pvt: pvt@e0680000 {
 | |
|         compatible = "moortec,mr75203";
 | |
|         reg = <0xe0680000 0x80>,
 | |
|               <0xe0680080 0x180>,
 | |
|               <0xe0680200 0x200>,
 | |
|               <0xe0680400 0xc00>;
 | |
|         reg-names = "common", "ts", "pd", "vm";
 | |
|         intel,vm-map = [03 01 04 ff ff];
 | |
|         clocks = <&osc0>;
 | |
|         resets = <&rcu0 0x40 7>;
 | |
|         moortec,vm-active-channels = /bits/ 8 <0x10 0x05>;
 | |
|         moortec,vm-pre-scaler-x2 = /bits/ 8 <5 6 20>;
 | |
|         moortec,ts-coeff-g = <61400>;
 | |
|         moortec,ts-coeff-h = <253700>;
 | |
|         #thermal-sensor-cells = <1>;
 | |
|     };
 |