schemas: Specify descriptions of MCTP I2C targets

6fa0602db825 ("Add mctp eids configuration for Yosemite 4") introduced
an `EndpointId` property for assigning static MCTP endpoint IDs to an
exposed device. This might work in very specific contexts, but
often more information is needed to configure a device for MCTP
communication.

Introduce the `MCTPI2CTarget` schema. Specifying `MCTPI2CTarget`
sets requirements such that a reactor can derive the physical address
encoding required to set up the endpoint.

For now we assume that all I2C controllers enabled for MCTP take the
role of bus owner.

Change-Id: I9d3f328262e99d405fc6e6dbdadff2306c254fa3
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
diff --git a/schemas/global.json b/schemas/global.json
index 955a034..6b67cf1 100644
--- a/schemas/global.json
+++ b/schemas/global.json
@@ -17,6 +17,9 @@
                     "$ref": "intel.json#/$defs/IntelFanConnector"
                 },
                 {
+                    "$ref": "mctp.json#/$defs/MCTPI2CTarget"
+                },
+                {
                     "$ref": "pid.json#/$defs/Pid"
                 },
                 {
diff --git a/schemas/mctp.json b/schemas/mctp.json
new file mode 100644
index 0000000..26e2cfd
--- /dev/null
+++ b/schemas/mctp.json
@@ -0,0 +1,27 @@
+{
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "$defs": {
+        "MCTPI2CTarget": {
+            "properties": {
+                "Address": {
+                    "description": "The physical address for the device on the I2C bus.",
+                    "type": "string"
+                },
+                "Bus": {
+                    "description": "The bus index to which the device is attached",
+                    "type": "string"
+                },
+                "Name": {
+                    "description": "A recognisable name for the device",
+                    "type": "string"
+                },
+                "Type": {
+                    "type": "string",
+                    "enum": ["MCTPI2CTarget"]
+                }
+            },
+            "required": ["Address", "Bus", "Name", "Type"],
+            "type": "object"
+        }
+    }
+}