[PATCH 1/3] dt-bindings: phy: add CIX Sky1 USB/DP combo PHY
From: Gary Yang
Date: Mon Nov 02 2026 - 03:22:26 EST
Document the USB/DP combo PHY of the CIX Sky1 SoC. Each PHY instance
exposes one SuperSpeedPlus USB lane and one DisplayPort lane as child
nodes, so that the USB and DP consumers can each reference the lane
they use.
The PHY performs Type-C plug orientation switching and USB/DP lane
muxing in hardware and is therefore described with the
"orientation-switch" and "mode-switch" properties. Lane muxing is
programmed through the S5 system controller, identified by the
"cix,usbphy-syscon" phandle followed by the PHY instance index.
Reviewed-by: Fugang Duan <fugang.duan@xxxxxxxxxxx>
Signed-off-by: Gary Yang <gary.yang@xxxxxxxxxxx>
---
.../bindings/phy/cix,sky1-usbdp-phy.yaml | 150 ++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 151 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/cix,sky1-usbdp-phy.yaml
diff --git a/Documentation/devicetree/bindings/phy/cix,sky1-usbdp-phy.yaml b/Documentation/devicetree/bindings/phy/cix,sky1-usbdp-phy.yaml
new file mode 100644
index 000000000000..a5b6943f84eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/cix,sky1-usbdp-phy.yaml
@@ -0,0 +1,150 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/cix,sky1-usbdp-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CIX Sky1 USB/DP Combo PHY
+
+maintainers:
+ - Gary Yang <gary.yang@xxxxxxxxxxx>
+
+description:
+ The CIX Sky1 USB/DP combo PHY provides one SuperSpeedPlus USB lane
+ and one DisplayPort lane for a USB3C Type-C port. The USB and DP
+ lanes are represented as child nodes of the PHY controller.
+
+properties:
+ compatible:
+ const: cix,sky1-usbdp-phy
+
+ reg:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ clocks:
+ maxItems: 1
+ description: PHY APB clock.
+
+ resets:
+ items:
+ - description: PHY core reset
+ - description: PHY APB preset
+
+ reset-names:
+ items:
+ - const: core
+ - const: apb
+
+ orientation-switch:
+ description:
+ The PHY handles Type-C plug orientation switching.
+ type: boolean
+
+ mode-switch:
+ description:
+ The PHY handles multiplexing of the USB and DisplayPort lanes.
+ type: boolean
+
+ cix,usbphy-syscon:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to the S5 system controller
+ - description: PHY instance index within the system controller
+ description:
+ Phandle to the system controller used for lane muxing and
+ Type-C orientation control, followed by the PHY instance index.
+
+ cix,default-conf:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ enum: [0, 1, 2, 3]
+ default: 3
+ description: |
+ Lane mode the PHY is put in until a consumer changes it through the
+ Type-C mux. The value is a bit mask: 0 = none, 1 = USB, 2 = DP,
+ 3 = USB and DP.
+
+patternProperties:
+ "^usb-port@[0-9a-f]+$":
+ type: object
+ description:
+ The USB lane of the combo PHY.
+
+ properties:
+ reg:
+ maxItems: 1
+
+ "#phy-cells":
+ const: 0
+
+ required:
+ - reg
+ - "#phy-cells"
+
+ additionalProperties: false
+
+ "^dp-port@[0-9a-f]+$":
+ type: object
+ description:
+ The DisplayPort lane of the combo PHY.
+
+ properties:
+ reg:
+ maxItems: 1
+
+ "#phy-cells":
+ const: 0
+
+ required:
+ - reg
+ - "#phy-cells"
+
+ additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+ - clocks
+ - resets
+ - reset-names
+ - cix,usbphy-syscon
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/cix,sky1.h>
+ #include <dt-bindings/reset/cix,sky1-s5-system-control.h>
+
+ usbc_phy0: usb-phy@9030000 {
+ compatible = "cix,sky1-usbdp-phy";
+ reg = <0x09030000 0x40000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&scmi_clk CLK_TREE_USB3C_DRD_PHY3_GATE>;
+ resets = <&s5_syscon SKY1_USB_DP_PHY0_RST_N>,
+ <&s5_syscon SKY1_USB_DP_PHY0_PRST_N>;
+ reset-names = "core", "apb";
+ cix,usbphy-syscon = <&s5_syscon 0>;
+ cix,default-conf = /bits/ 8 <0x03>;
+ orientation-switch;
+ mode-switch;
+
+ usb-port@0 {
+ reg = <0>;
+ #phy-cells = <0>;
+ };
+
+ dp-port@1 {
+ reg = <1>;
+ #phy-cells = <0>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 93abbb315065..8fb940a3ea3b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2903,6 +2903,7 @@ S: Maintained
T: git https://github.com/cixtech/linux-mainline.git
F: Documentation/devicetree/bindings/arm/cix.yaml
F: Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml
+F: Documentation/devicetree/bindings/phy/cix,sky1-usbdp-phy.yaml
F: arch/arm64/boot/dts/cix/
F: drivers/mailbox/cix-mailbox.c
K: \bcix\b
--
2.50.1