schemas: Add schema for IBMCFFPS

IBMCFFPS, or International Business Machines Common Form Factor Power
Supply is an IBM power supply used on a wide range of IBM systems.

The schema associates an I2C endpoint and a GPIO.  In the entity-manager
detector-configuration-reactor architecture, the daemon supporting the
IBM CFFPS is both a detector and reactor.  It probes the endpoints
described by this schema (reactor) and publish the CFFPS FRU information
(detector).

Change-Id: I9beaf1ca08701805998c5516d17e47ee88b53028
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meson.build b/meson.build
index 2f97202..12daa89 100644
--- a/meson.build
+++ b/meson.build
@@ -121,6 +121,7 @@
     'global.json',
     'legacy.json',
     'openbmc-dbus.json',
+    'IBM.json',
     'Pid.json',
     'Pid.Zone.json',
     'Stepwise.json',
diff --git a/schemas/IBM.json b/schemas/IBM.json
new file mode 100644
index 0000000..4078475
--- /dev/null
+++ b/schemas/IBM.json
@@ -0,0 +1,53 @@
+{
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "definitions": {
+        "IBMCFFPSConnector": {
+            "title": "IBM Common Form Factor (CFF) Power Supply connectors",
+            "description": [
+                "A schema associating an I2C endpoint and a GPIO for IBM CFF",
+                "power supplies.  In the entity-manager",
+                "detector-configuration-reactor architecture, the daemon that",
+                "supports IBM CFFPS is both a detector and reactor.  It probes",
+                "the endpoints described by this schema (reactor) and publishes",
+                "the CFFPS FRU information (detector)."
+            ],
+            "type": "object",
+            "properties": {
+                "Name": {
+                    "type": "string"
+                },
+                "Type": {
+                    "enum": [
+                        "IBMCFFPSConnector"
+                    ]
+                },
+                "I2CBus": {
+                    "description": [
+                        "The I2C address on which to probe for a CFFPS."
+                    ],
+                    "type": "number"
+                },
+                "I2CAddress": {
+                    "description": [
+                        "The I2C bus number on which to probe for a CFFPS."
+                    ],
+                    "type": "number"
+                },
+                "NamedPresenceGpio": {
+                    "description": [
+                        "The name of the GPIO to monitor that indicates CFFPS",
+                        "plug state."
+                    ],
+                    "type": "string"
+                }
+            },
+            "required": [
+                "Name",
+                "Type",
+                "I2CBus",
+                "I2CAddress",
+                "NamedPresenceGpio"
+            ]
+        }
+    }
+}
diff --git a/schemas/global.json b/schemas/global.json
index 86236b3..88db2bb 100644
--- a/schemas/global.json
+++ b/schemas/global.json
@@ -9,6 +9,9 @@
             ],
             "oneOf": [
                 {
+                    "$ref": "IBM.json#/definitions/IBMCFFPSConnector"
+                },
+                {
                     "$ref": "Intel.json#/definitions/IntelFanConnector"
                 },
                 {