README: Add description for psu json config
Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I7b64330bcf159486603fe977f2e3411247069d79
diff --git a/README.md b/README.md
index 1299878..3cb35c5 100644
--- a/README.md
+++ b/README.md
@@ -9,3 +9,46 @@
To clean the repository again run `rm -rf build`.
```
+
+## Power Supply Monitor and Util JSON config
+
+Several applications in this repository require a PSU JSON config to run.
+The JSON config file provides information for:
+* Where to access the pmbus attributes
+* Which attribute file in pmbus maps to which property and interface in D-Bus
+* Which kernel device directory is used on which PSU
+
+There is an example [psu.json](example/psu.json) to describe the necessary
+configurations.
+
+* `inventoryPMBusAccessType` defines the pmbus access type, which tells the
+ service which sysfs type to use to read the attributes.
+ The possible values are:
+ * Base: The base dir, e.g. `/sys/bus/i2c/devices/3-0069/`
+ * Hwmon: The hwmon dir, e.g. `/sys/bus/i2c/devices/3-0069/hwmon/hwmonX/`
+ * Debug: The pmbus debug dir, e.g. `/sys/kernel/debug/pmbus/hwmonX/`
+ * DeviceDebug: The device debug dir, e.g. '/sys/kernel/debug/<driver>.<instance>/`
+ * HwmonDeviceDebug: The hwmon device debug dir, e.g. `/sys/kernel/debug/pmbus/hwmonX/cffps1/`
+* `fruConfigs` defines the mapping between the attribute file and the FRU
+ inventory interface and property.
+ The configuration example below indicates that the service will read
+ `part_number` attribute file from a directory specified by the above pmbus
+ access type, and assign to `PartNumber` property in
+ `xyz.openbmc_project.Inventory.Decorator.Asset` interface.
+ ```
+ "fruConfigs": [
+ {
+ "propertyName": "PartNumber",
+ "fileName": "part_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ }
+ ]
+ ```
+* `psuDevices` defines the kernel device dir for each PSU in inventory.
+ The configuration example below indicates that `powersupply0`'s device is
+ located in `/sys/bus/i2c/devices/3-0069`.
+ ```
+ "psuDevices": {
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0069",
+ }
+ ```