schemas: legacy: extract I2CMux

This allows to remove some properties from 'Aggregate' schema which are
no longer needed, since there is now a more specific schema to use.

Tested: Schema Validator Pass

Change-Id: I69ad69475a03bee6f365fc8c7fbd063bf200121f
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/schemas/global.json b/schemas/global.json
index 1985347..c03f32f 100644
--- a/schemas/global.json
+++ b/schemas/global.json
@@ -70,6 +70,9 @@
                             "$ref": "legacy.json#/$defs/IpmbSensor"
                         },
                         {
+                            "$ref": "legacy.json#/$defs/I2CMux"
+                        },
+                        {
                             "$ref": "virtual_sensor.json#/$defs/VirtualSensor"
                         },
                         {
diff --git a/schemas/legacy.json b/schemas/legacy.json
index e9ca382..47d37ee 100644
--- a/schemas/legacy.json
+++ b/schemas/legacy.json
@@ -339,6 +339,34 @@
             "required": ["Name", "Type", "Address", "Class"],
             "type": "object"
         },
+        "I2CMux": {
+            "additionalProperties": false,
+            "properties": {
+                "Name": {
+                    "$ref": "#/$defs/Types/Name"
+                },
+                "Bus": {
+                    "$ref": "#/$defs/Types/Bus"
+                },
+                "Address": {
+                    "$ref": "#/$defs/Types/Address"
+                },
+                "ChannelNames": {
+                    "$ref": "#/$defs/Types/ChannelNames"
+                },
+                "Type": {
+                    "type": "string",
+                    "enum": [
+                        "PCA9543Mux",
+                        "PCA9544Mux",
+                        "PCA9545Mux",
+                        "PCA9546Mux"
+                    ]
+                }
+            },
+            "required": ["Name", "Type", "Address", "Bus", "ChannelNames"],
+            "type": "object"
+        },
         "Aggregate": {
             "description": "Don't add additional properties to this schema. Consult README.schema for instructions on adding new Exposes element sub-schema.",
             "additionalProperties": false,
@@ -390,9 +418,6 @@
                 "CPURequired": {
                     "$ref": "#/$defs/Types/CPURequired"
                 },
-                "ChannelNames": {
-                    "$ref": "#/$defs/Types/ChannelNames"
-                },
                 "Class": {
                     "$ref": "#/$defs/Types/Class"
                 },
@@ -845,10 +870,6 @@
                     "cffps",
                     "ExternalSensor",
                     "NMSensor",
-                    "PCA9543Mux",
-                    "PCA9544Mux",
-                    "PCA9545Mux",
-                    "PCA9546Mux",
                     "PSM7",
                     "JC42",
                     "MCP9600"