| Kernel driver occ-hwmon | 
 | ======================= | 
 |  | 
 | Supported chips: | 
 |  | 
 |   * POWER8 | 
 |   * POWER9 | 
 |  | 
 | Author: Eddie James <eajames@linux.ibm.com> | 
 |  | 
 | Description | 
 | ----------- | 
 |  | 
 | This driver supports hardware monitoring for the On-Chip Controller (OCC) | 
 | embedded on POWER processors. The OCC is a device that collects and aggregates | 
 | sensor data from the processor and the system. The OCC can provide the raw | 
 | sensor data as well as perform thermal and power management on the system. | 
 |  | 
 | The P8 version of this driver is a client driver of I2C. It may be probed | 
 | manually if an "ibm,p8-occ-hwmon" compatible device is found under the | 
 | appropriate I2C bus node in the device-tree. | 
 |  | 
 | The P9 version of this driver is a client driver of the FSI-based OCC driver. | 
 | It will be probed automatically by the FSI-based OCC driver. | 
 |  | 
 | Sysfs entries | 
 | ------------- | 
 |  | 
 | The following attributes are supported. All attributes are read-only unless | 
 | specified. | 
 |  | 
 | The OCC sensor ID is an integer that represents the unique identifier of the | 
 | sensor with respect to the OCC. For example, a temperature sensor for the third | 
 | DIMM slot in the system may have a sensor ID of 7. This mapping is unavailable | 
 | to the device driver, which must therefore export the sensor ID as-is. | 
 |  | 
 | Some entries are only present with certain OCC sensor versions or only on | 
 | certain OCCs in the system. The version number is not exported to the user | 
 | but can be inferred. | 
 |  | 
 | temp[1-n]_label | 
 | 	OCC sensor ID. | 
 |  | 
 | [with temperature sensor version 1] | 
 |  | 
 |     temp[1-n]_input | 
 | 			Measured temperature of the component in millidegrees | 
 | 			Celsius. | 
 |  | 
 | [with temperature sensor version >= 2] | 
 |  | 
 |     temp[1-n]_type | 
 | 				The FRU (Field Replaceable Unit) type | 
 | 				(represented by an integer) for the component | 
 | 				that this sensor measures. | 
 |     temp[1-n]_fault | 
 | 				Temperature sensor fault boolean; 1 to indicate | 
 | 				that a fault is present or 0 to indicate that | 
 | 				no fault is present. | 
 |  | 
 |     [with type == 3 (FRU type is VRM)] | 
 |  | 
 | 	temp[1-n]_alarm | 
 | 				VRM temperature alarm boolean; 1 to indicate | 
 | 				alarm, 0 to indicate no alarm | 
 |  | 
 |     [else] | 
 |  | 
 | 	temp[1-n]_input | 
 | 				Measured temperature of the component in | 
 | 				millidegrees Celsius. | 
 |  | 
 | freq[1-n]_label | 
 | 			OCC sensor ID. | 
 | freq[1-n]_input | 
 | 			Measured frequency of the component in MHz. | 
 | power[1-n]_input | 
 | 			Latest measured power reading of the component in | 
 | 			microwatts. | 
 | power[1-n]_average | 
 | 			Average power of the component in microwatts. | 
 | power[1-n]_average_interval | 
 | 				The amount of time over which the power average | 
 | 				was taken in microseconds. | 
 |  | 
 | [with power sensor version < 2] | 
 |  | 
 |     power[1-n]_label | 
 | 			OCC sensor ID. | 
 |  | 
 | [with power sensor version >= 2] | 
 |  | 
 |     power[1-n]_label | 
 | 			OCC sensor ID + function ID + channel in the form | 
 | 			of a string, delimited by underscores, i.e. "0_15_1". | 
 | 			Both the function ID and channel are integers that | 
 | 			further identify the power sensor. | 
 |  | 
 | [with power sensor version 0xa0] | 
 |  | 
 |     power[1-n]_label | 
 | 			OCC sensor ID + sensor type in the form of a string, | 
 | 			delimited by an underscore, i.e. "0_system". Sensor | 
 | 			type will be one of "system", "proc", "vdd" or "vdn". | 
 | 			For this sensor version, OCC sensor ID will be the same | 
 | 			for all power sensors. | 
 |  | 
 | [present only on "master" OCC; represents the whole system power; only one of | 
 | this type of power sensor will be present] | 
 |  | 
 |     power[1-n]_label | 
 | 				"system" | 
 |     power[1-n]_input | 
 | 				Latest system output power in microwatts. | 
 |     power[1-n]_cap | 
 | 				Current system power cap in microwatts. | 
 |     power[1-n]_cap_not_redundant | 
 | 				System power cap in microwatts when | 
 | 				there is not redundant power. | 
 |     power[1-n]_cap_max | 
 | 				Maximum power cap that the OCC can enforce in | 
 | 				microwatts. | 
 |     power[1-n]_cap_min		Minimum power cap that the OCC can enforce in | 
 | 				microwatts. | 
 |     power[1-n]_cap_user		The power cap set by the user, in microwatts. | 
 | 				This attribute will return 0 if no user power | 
 | 				cap has been set. This attribute is read-write, | 
 | 				but writing any precision below watts will be | 
 | 				ignored, i.e. requesting a power cap of | 
 | 				500900000 microwatts will result in a power cap | 
 | 				request of 500 watts. | 
 |  | 
 |     [with caps sensor version > 1] | 
 |  | 
 | 	power[1-n]_cap_user_source | 
 | 					Indicates how the user power cap was | 
 | 					set. This is an integer that maps to | 
 | 					system or firmware components that can | 
 | 					set the user power cap. | 
 |  | 
 | The following "extn" sensors are exported as a way for the OCC to provide data | 
 | that doesn't fit anywhere else. The meaning of these sensors is entirely | 
 | dependent on their data, and cannot be statically defined. | 
 |  | 
 | extn[1-n]_label | 
 | 			ASCII ID or OCC sensor ID. | 
 | extn[1-n]_flags | 
 | 			This is one byte hexadecimal value. Bit 7 indicates the | 
 | 			type of the label attribute; 1 for sensor ID, 0 for | 
 | 			ASCII ID. Other bits are reserved. | 
 | extn[1-n]_input | 
 | 			6 bytes of hexadecimal data, with a meaning defined by | 
 | 			the sensor ID. |