Add Inventory/MultiRecord interfaces

Add the following interfaces:
xyz.openbmc_project.Inventory.MultiRecord.DcOutput
xyz.openbmc_project.Inventory.MultiRecord.PowerSupply

The TachoPPR_FailPinPolarity property could use an
enumeration, but since it adds no value to the end user
but complicates the implementation code, it was left
boolean for now.

Change-Id: Icde52e1c87dde72fd30c6dfb8e40e1b607f4354e
Signed-off-by: Alexander Amelkin <a.amelkin@yadro.com>
diff --git a/xyz/openbmc_project/Inventory/MultiRecord/DcOutput.interface.yaml b/xyz/openbmc_project/Inventory/MultiRecord/DcOutput.interface.yaml
new file mode 100644
index 0000000..28cfee0
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/MultiRecord/DcOutput.interface.yaml
@@ -0,0 +1,48 @@
+description: >
+  IPMI FRU MultiRecord Area, DC Output record (Type 0x01)
+  In accordance with IPMI Platform Management FRU Information
+  Storage Definition v1.0 Document Revision 1.3, Table 18-2
+
+properties:
+    - name: Standby
+      type: boolean
+      description: >
+        Offset 0, bit 7.
+        Standby.
+    - name: OutputNumber
+      type: int64
+      description: >
+        Offset 0, bits 3..0.
+        Output number.
+    - name: NominalVoltage
+      type: int64
+      description: >
+        Offset 1.
+        Nominal voltage (10 mV).
+    - name: MaxNegativeVoltage
+      type: int64
+      description: >
+        Offset 3.
+        Maximum negative voltage (10 mV)
+        (most negative voltage with respect to nominal).
+    - name: MaxPositiveVoltage
+      type: int64
+      description: >
+        Offset 5.
+        Maximum positive voltage (10 mV)
+        (most positive voltage with respect to nominal).
+    - name: RippleAndNoise
+      type: int64
+      description: >
+        Offset 7.
+        Ripple and Noise pk-pk 10Hz to 30 MHz (mV).
+    - name: MinCurrentDraw
+      type: int64
+      description: >
+        Offset 9.
+        Minimum current draw (mA).
+    - name: MaxCurrentDraw
+      type: int64
+      description: >
+        Offset 11.
+        Maximum current draw (mA).
diff --git a/xyz/openbmc_project/Inventory/MultiRecord/PowerSupply.interface.yaml b/xyz/openbmc_project/Inventory/MultiRecord/PowerSupply.interface.yaml
new file mode 100644
index 0000000..688b901
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/MultiRecord/PowerSupply.interface.yaml
@@ -0,0 +1,121 @@
+description: >
+  MultiRecord Power Supply Information (Record Type 0x00)
+  In accordance with IPMI Platform Management FRU Information
+  Storage Definition v1.0 Document Revision 1.3, Table 18-1.
+
+properties:
+    - name: OveralCapacity
+      type: int64
+      description: >
+        Offset 0, bits 11..0.
+        Overall capacity (watts)
+    - name: PeakVA
+      type: int64
+      description: >
+        Offset 2.
+        Peak VA
+    - name: InrushCurrent
+      type: int64
+      description: >
+        Offset 4.
+        Inrush current
+    - name: InrushInterval
+      type: int64
+      description: >
+        Offset 5.
+        Inrush interval in ms.
+    - name: LowInputVoltage1
+      type: int64
+      description: >
+        Offset 6.
+        Low end Input voltage range 1 (10mV)
+    - name: HighInputVoltage1
+      type: int64
+      description: >
+        Offset 8.
+        High end Input voltage range 1 (10mV)
+    - name: LowInputVoltage2
+      type: int64
+      description: >
+        Offset 10.
+        Low end Input voltage range 2 (10mV)
+    - name: HighInputVoltage2
+      type: int64
+      description: >
+        Offset 12.
+        High end Input voltage range 2 (10mV)
+    - name: LowInputFrequency
+      type: int64
+      description: >
+        Offset 14.
+        Low end Input frequency range
+    - name: HighInputFrequency
+      type: int64
+      description: >
+        Offset 15.
+        High end Input frequency range
+    - name:  InDropoutTolerance
+      type: int64
+      description: >
+        Offset 16.
+        Input dropout tolerance in ms
+    - name: TachoPPR_FailPinPolarity
+      type: boolean
+      description: >
+        Offset 17, bit 4.
+        Tachometer pulses per rotation/Predictive fail pin polarity.
+        Meaning depends on PrediciveFailSupport.
+        False means 1 pulse per rotation (for tacho) or assertion indicates failure (for predictive falure pin).
+        True means 2 pulses per rotation (for tacho) or deassertion indicates failure (for predictive falure pin).
+    - name: HotSwap
+      type: boolean
+      description: >
+        Offset 17, bit 3.
+        Hot Swap Support
+    - name: Autoswitch
+      type: boolean
+      description: >
+        Offset 17, bit 2.
+        Autoswitch
+    - name: PowerFactor
+      type: boolean
+      description: >
+        Offset 17, bit 1.
+        Power factor correction
+    - name: PredictiveFailSupport
+      type: boolean
+      description: >
+        Offset 17, bit 0.
+        Predictive fail pin supported. When false, tachometer is used instead.
+        Affects meaning of TachoPPR_FailPinPolarity.
+    - name: HoldUpTime
+      type: int64
+      description: >
+        Offset 18, bits 15..12.
+        Peak Wattage hold up time in seconds
+    - name: PeakCapacity
+      type: int64
+      description: >
+        Offset 18, bits 11..0.
+        Peak capacity (watts)
+    - name: Voltage1
+      type: int64
+      description: >
+        Offset 20, byte 1, bits 7..4.
+        Combined Wattage Voltage 1
+    - name: Voltage2
+      type: int64
+      description: >
+        Offset 20, byte 1, bits 3..0.
+        Combined Wattage Voltage 2
+    - name: TotalWattage
+      type: int64
+      description: >
+        Offset 20, bytes 2..3.
+        Total Combined Wattage
+    - name: TachometerLow
+      type: int64
+      description: >
+        Offset 23.
+        Predictive fail tachometer lower threshold (RPS).
+        Used when PredictiveFailSupport is false.