regulators: Initial JSON config file for Everest

Create an initial JSON configuration file for IBM Everest systems.  File
does not yet contain any device information.

Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: I1cf0b0843145c3190d780d190e6ef0cdd5150b16
diff --git a/phosphor-regulators/config_files/ibm_everest.json b/phosphor-regulators/config_files/ibm_everest.json
new file mode 100644
index 0000000..d0fe229
--- /dev/null
+++ b/phosphor-regulators/config_files/ibm_everest.json
@@ -0,0 +1,93 @@
+{
+  "comments": [ "phosphor-regulators configuration file for IBM Everest systems" ],
+
+
+  "rules": [
+    {
+      "comments": [ "Rule to set PMBus PAGE to 0" ],
+      "id": "set_page0_rule",
+      "actions": [
+        { "i2c_write_byte": { "register": "0x00", "value": "0x00" } }
+      ]
+    },
+
+
+    {
+      "comments": [ "Rule to set PMBus PAGE to 1" ],
+      "id": "set_page1_rule",
+      "actions": [
+        { "i2c_write_byte": { "register": "0x00", "value": "0x01" } }
+      ]
+    },
+
+
+    {
+      "comments": [ "Rule to set output voltage of a PMBus regulator" ],
+      "id": "set_voltage_rule",
+      "actions": [
+        {
+          "comments": [ "Write volts value to VOUT_COMMAND in linear format.",
+                        "Get volts value from configuration.  Get exponent",
+                        "from VOUT_MODE.  Verify write was successful." ],
+          "pmbus_write_vout_command": { "format": "linear", "is_verified": true }
+        }
+      ]
+    },
+
+
+    {
+      "comments": [ "Rule to set output voltage of PAGE 0 of a PMBus regulator" ],
+      "id": "set_voltage_page0_rule",
+      "actions": [
+        { "run_rule": "set_page0_rule" },
+        { "run_rule": "set_voltage_rule" }
+      ]
+    },
+
+
+    {
+      "comments": [ "Rule to set output voltage of PAGE 1 of a PMBus regulator" ],
+      "id": "set_voltage_page1_rule",
+      "actions": [
+        { "run_rule": "set_page1_rule" },
+        { "run_rule": "set_voltage_rule" }
+      ]
+    },
+
+
+    {
+      "comments": [ "Rule to set output voltage of a PMBus regulator using",
+                    "PMBus OPERATION and VOUT_COMMAND" ],
+      "id": "set_operation_and_voltage_rule",
+      "actions": [
+        {
+          "comments": [ "Set PMBus OPERATION to 0x80 indicating output voltage",
+                        "is set by the PMBus VOUT_COMMAND" ],
+          "i2c_write_byte": { "register": "0x01", "value": "0x80" }
+        },
+
+        {
+          "comments": [ "Set the output voltage using the PMBus VOUT_COMMAND" ],
+          "run_rule": "set_voltage_rule"
+        },
+
+        {
+          "comments": [ "Set PMBus OPERATION to 0xB0 indicating output voltage",
+                        "will now be set by AVSBus (AVS_VOUT_COMMAND).",
+                        "Hardware settings cause the VOUT_COMMAND value to be",
+                        "the initial voltage value for AVSBus." ],
+          "i2c_write_byte": { "register": "0x01", "value": "0xB0" }
+        }
+      ]
+    }
+  ],
+
+
+  "chassis": [
+    {
+      "comments": [ "Chassis (drawer) 1",
+                    "Note: Devices not defined yet" ],
+      "number": 1
+    }
+  ]
+}