Add d-bus interfaces for Settings

Resolves openbmc/openbmc#1486.

Change-Id: I377f40516a6a0317bb4b5d811704288048c83cc8
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/xyz/openbmc_project/Control/Boot/Mode.interface.yaml b/xyz/openbmc_project/Control/Boot/Mode.interface.yaml
new file mode 100644
index 0000000..879ff76
--- /dev/null
+++ b/xyz/openbmc_project/Control/Boot/Mode.interface.yaml
@@ -0,0 +1,24 @@
+description: >
+    Implement to set boot mode. The mode typically identifies
+    the end target of the boot process.
+
+properties:
+    - name: BootMode
+      type: enum[self.Modes]
+      description: >
+          The desired boot mode.
+
+enumerations:
+    - name: Modes
+      description: >
+        Possible boot modes.
+      values:
+        - name: Regular
+          description: >
+            The regular/default mode, such as boot to an OS.
+        - name: Safe
+          description: >
+            Boot to a diagnostic/trouble-shooting mode.
+        - name: Setup
+          description: >
+            Boot to BIOS setup.
diff --git a/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml b/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml
new file mode 100644
index 0000000..06f2faa
--- /dev/null
+++ b/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml
@@ -0,0 +1,8 @@
+description: >
+    Implement to set common reboot policies.
+
+properties:
+    - name: AutoReboot
+      type: boolean
+      description: >
+          Whether or not auto reboot is enabled.
diff --git a/xyz/openbmc_project/Control/Boot/Source.interface.yaml b/xyz/openbmc_project/Control/Boot/Source.interface.yaml
new file mode 100644
index 0000000..ea811bd
--- /dev/null
+++ b/xyz/openbmc_project/Control/Boot/Source.interface.yaml
@@ -0,0 +1,26 @@
+description: >
+    Implement to designate the source of a boot image.
+
+properties:
+    - name: BootSource
+      type: enum[self.Sources]
+      description: >
+          The desired boot image source.
+
+enumerations:
+    - name: Sources
+      description: >
+        Possible sources of a boot image.
+      values:
+        - name: Disk
+          description: >
+            Boot from the local hard disk.
+        - name: ExternalMedia
+          description: >
+            Boot from CD/DVD/USB, etc.
+        - name: Network
+          description: >
+            Boot from a remote source over a network.
+        - name: Default
+          description: >
+            Boot from an implementation defined source.
diff --git a/xyz/openbmc_project/Control/Power/Cap.interface.yaml b/xyz/openbmc_project/Control/Power/Cap.interface.yaml
new file mode 100644
index 0000000..e15bffa
--- /dev/null
+++ b/xyz/openbmc_project/Control/Power/Cap.interface.yaml
@@ -0,0 +1,9 @@
+description: >
+    Implement to specify a cap on maximum power consumption.
+
+properties:
+    - name: PowerCap
+      type: uint32
+      description: >
+          Power cap value. This could for example be specified in absolute
+          wattage. The unit of measurement must be Watts.
diff --git a/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml b/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml
new file mode 100644
index 0000000..1a29980
--- /dev/null
+++ b/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml
@@ -0,0 +1,25 @@
+description: >
+    Implement to specify power transition behavior on restoration of lost main
+    power source.
+
+properties:
+    - name: PowerRestorePolicy
+      type: enum[self.Policy]
+      description: >
+          The policy to adopt on restoration of power.
+
+enumerations:
+    - name: Policy
+      description: >
+        Possible power restoration policies.
+      values:
+        - name: AlwaysOn
+          description: >
+            Perform a complete power on process.
+        - name: AlwaysOff
+          description: >
+            Remain powered off.
+        - name: Restore
+          description: >
+            Restore power to a state that was known, just before the main power
+            was lost.
diff --git a/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml b/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml
new file mode 100644
index 0000000..8e4fd8d
--- /dev/null
+++ b/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml
@@ -0,0 +1,23 @@
+description: >
+    Implement to specify a restricted mode of operation.
+
+properties:
+    - name: RestrictionMode
+      type: enum[self.Modes]
+      description: >
+          The restriction mode.
+
+enumerations:
+    - name: Modes
+      description: >
+        Possible modes of restriction.
+      values:
+        - name: None
+          description: >
+            No restriction.
+        - name: Whitelist
+          description: >
+            Allow, only if in the whitelist.
+        - name: Blacklist
+          description: >
+            Prevent, if in the blacklist.
diff --git a/xyz/openbmc_project/Time/Owner.interface.yaml b/xyz/openbmc_project/Time/Owner.interface.yaml
new file mode 100644
index 0000000..6794ce7
--- /dev/null
+++ b/xyz/openbmc_project/Time/Owner.interface.yaml
@@ -0,0 +1,26 @@
+description: >
+    Implement to set time owner.
+
+properties:
+    - name: TimeOwner
+      type: enum[self.Owners]
+      description: >
+          The time owner.
+
+enumerations:
+    - name: Owners
+      description: >
+        Possible owners of time.
+      values:
+        - name: BMC
+          description: >
+            BMC alone owns system time.
+        - name: Host
+          description: >
+            Host alone owns system time.
+        - name: Both
+          description: >
+            BMC and host own system time.
+        - name: Split
+          description: >
+            BMC and host maintain their own time.
diff --git a/xyz/openbmc_project/Time/Synchronization.interface.yaml b/xyz/openbmc_project/Time/Synchronization.interface.yaml
new file mode 100644
index 0000000..c63c55b
--- /dev/null
+++ b/xyz/openbmc_project/Time/Synchronization.interface.yaml
@@ -0,0 +1,20 @@
+description: >
+    Implement to set time synchronization method.
+
+properties:
+    - name: TimeSyncMethod
+      type: enum[self.Method]
+      description: >
+          The method of time synchronization.
+
+enumerations:
+    - name: Method
+      description: >
+        Possible methods of time synchronization.
+      values:
+        - name: NTP
+          description: >
+            Sync by using the Network Time Protocol.
+        - name: Manual
+          description: >
+            Sync time manually.