valve: add control interface
Add the valve control interface to open and close the valve to start and
stop the flow of coolant.
Change-Id: Id23ef26dbd6f982a7fa17c65e2ef5b9f6cbc9263
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/yaml/xyz/openbmc_project/Control/Valve.interface.yaml b/yaml/xyz/openbmc_project/Control/Valve.interface.yaml
new file mode 100644
index 0000000..5b7d3d8
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Control/Valve.interface.yaml
@@ -0,0 +1,37 @@
+description: >
+ Implement to provide a valve control interface to open/close a valve.
+
+ Any service implementing this interface must also implement
+ the xyz.openbmc_project.Sensors.Value interface to show valve's open status
+ in percentage units.
+
+properties:
+ - name: State
+ type: enum[self.State]
+ description: >
+ This indicates the property used to open or close the valve.
+
+enumerations:
+ - name: State
+ description: >
+ This indicates which status should be configured for the valve.
+ values:
+ - name: Open
+ description: >
+ This indicates the valve should be opened.
+ - name: Close
+ description: >
+ This indicates the valve should be closed.
+
+associations:
+ - name: controlling
+ description: >
+ A valve control interface can optionally implement the 'controlling'
+ association to provide link to the inventory item being controlled by
+ it.
+ reverse_name: controlled_by
+ required_endpoint_interfaces:
+ - xyz.openbmc_project.Inventory.Item.Valve
+
+paths:
+ - namespace: /xyz/openbmc_project/control/valve