- in-band-status
  
    fixed-link:
-     allOf:
-       - if:
-           type: array
-         then:
-           deprecated: true
-           items:
-             - minimum: 0
-               maximum: 31
-               description:
-                 Emulated PHY ID, choose any but unique to the all
-                 specified fixed-links
- 
-             - enum: [0, 1]
-               description:
-                 Duplex configuration. 0 for half duplex or 1 for
-                 full duplex
- 
-             - enum: [10, 100, 1000, 2500, 10000]
-               description:
-                 Link speed in Mbits/sec.
- 
-             - enum: [0, 1]
-               description:
-                 Pause configuration. 0 for no pause, 1 for pause
- 
-             - enum: [0, 1]
-               description:
-                 Asymmetric pause configuration. 0 for no asymmetric
-                 pause, 1 for asymmetric pause
- 
- 
-       - if:
-           type: object
-         then:
-           properties:
-             speed:
-               description:
-                 Link speed.
-               $ref: /schemas/types.yaml#/definitions/uint32
-               enum: [10, 100, 1000, 2500, 10000]
- 
-             full-duplex:
-               $ref: /schemas/types.yaml#/definitions/flag
-               description:
-                 Indicates that full-duplex is used. When absent, half
-                 duplex is assumed.
- 
-             pause:
-               $ref: /schemas/types.yaml#definitions/flag
-               description:
-                 Indicates that pause should be enabled.
- 
-             asym-pause:
-               $ref: /schemas/types.yaml#/definitions/flag
-               description:
-                 Indicates that asym_pause should be enabled.
- 
-             link-gpios:
-               maxItems: 1
-               description:
-                 GPIO to determine if the link is up
- 
-           required:
-             - speed
+     oneOf:
+       - $ref: /schemas/types.yaml#/definitions/uint32-array
+         deprecated: true
+         items:
+           - minimum: 0
+             maximum: 31
+             description:
+               Emulated PHY ID, choose any but unique to the all
+               specified fixed-links
+ 
+           - enum: [0, 1]
+             description:
+               Duplex configuration. 0 for half duplex or 1 for
+               full duplex
+ 
+           - enum: [10, 100, 1000, 2500, 10000]
+             description:
+               Link speed in Mbits/sec.
+ 
+           - enum: [0, 1]
+             description:
+               Pause configuration. 0 for no pause, 1 for pause
+ 
+           - enum: [0, 1]
+             description:
+               Asymmetric pause configuration. 0 for no asymmetric
+               pause, 1 for asymmetric pause
+       - type: object
+         additionalProperties: false
+         properties:
+           speed:
+             description:
+               Link speed.
+             $ref: /schemas/types.yaml#/definitions/uint32
+             enum: [10, 100, 1000, 2500, 10000]
+ 
+           full-duplex:
+             $ref: /schemas/types.yaml#/definitions/flag
+             description:
+               Indicates that full-duplex is used. When absent, half
+               duplex is assumed.
+ 
+           pause:
+             $ref: /schemas/types.yaml#definitions/flag
+             description:
+               Indicates that pause should be enabled.
+ 
+           asym-pause:
+             $ref: /schemas/types.yaml#/definitions/flag
+             description:
+               Indicates that asym_pause should be enabled.
+ 
+           link-gpios:
+             maxItems: 1
+             description:
+               GPIO to determine if the link is up
+ 
+         required:
+           - speed
  
 +allOf:
 +  - if:
 +      properties:
 +        phy-mode:
 +          contains:
 +            enum:
 +              - rgmii
 +              - rgmii-rxid
 +              - rgmii-txid
 +              - rgmii-id
 +    then:
 +      properties:
 +        rx-internal-delay-ps:
 +          description:
 +            RGMII Receive Clock Delay defined in pico seconds.This is used for
 +            controllers that have configurable RX internal delays. If this
 +            property is present then the MAC applies the RX delay.
 +        tx-internal-delay-ps:
 +          description:
 +            RGMII Transmit Clock Delay defined in pico seconds.This is used for
 +            controllers that have configurable TX internal delays. If this
 +            property is present then the MAC applies the TX delay.
 +
  additionalProperties: true
  
  ...