# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/usb/qcom,pmic-typec.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm PMIC based USB Type-C block maintainers: - Bryan O'Donoghue description: Qualcomm PMIC Type-C block properties: compatible: oneOf: - enum: - qcom,pmi632-typec - qcom,pm8150b-typec - items: - enum: - qcom,pm6150-typec - const: qcom,pm8150b-typec - items: - enum: - qcom,pm4125-typec - const: qcom,pmi632-typec connector: type: object $ref: /schemas/connector/usb-connector.yaml# unevaluatedProperties: false reg: description: Type-C port and pdphy SPMI register base offsets minItems: 1 maxItems: 2 interrupts: minItems: 8 items: - description: Type-C CC attach notification, VBUS error, tCCDebounce done - description: Type-C VCONN powered - description: Type-C CC state change - description: Type-C VCONN over-current - description: Type-C VBUS state change - description: Type-C Attach/detach notification - description: Type-C Legacy cable detect - description: Type-C Try.Src Try.Snk state change - description: Power Domain Signal TX - HardReset or CableReset signal TX - description: Power Domain Signal RX - HardReset or CableReset signal RX - description: Power Domain TX complete - description: Power Domain RX complete - description: Power Domain TX fail - description: Power Domain TX message discard - description: Power Domain RX message discard - description: Power Domain Fast Role Swap event interrupt-names: minItems: 8 items: - const: or-rid-detect-change - const: vpd-detect - const: cc-state-change - const: vconn-oc - const: vbus-change - const: attach-detach - const: legacy-cable-detect - const: try-snk-src-detect - const: sig-tx - const: sig-rx - const: msg-tx - const: msg-rx - const: msg-tx-failed - const: msg-tx-discarded - const: msg-rx-discarded - const: fr-swap vdd-vbus-supply: description: VBUS power supply. vdd-pdphy-supply: description: VDD regulator supply to the PDPHY. port: $ref: /schemas/graph.yaml#/properties/port description: Contains a port which produces data-role switching messages. required: - compatible - reg - interrupts - interrupt-names - vdd-vbus-supply allOf: - if: properties: compatible: contains: enum: - qcom,pmi632-typec then: properties: reg: maxItems: 1 interrupts: maxItems: 8 interrupt-names: maxItems: 8 vdd-pdphy-supply: false else: properties: reg: maxItems: 2 interrupts: minItems: 16 interrupt-names: maxItems: 16 required: - vdd-pdphy-supply additionalProperties: false examples: - | #include #include pmic { #address-cells = <1>; #size-cells = <0>; pm8150b_typec: typec@1500 { compatible = "qcom,pm8150b-typec"; reg = <0x1500>, <0x1700>; interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>, <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>, <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>, <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>, <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>, <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>, <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>, <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x00 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x01 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x02 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x03 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x04 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x05 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x06 IRQ_TYPE_EDGE_RISING>, <0x2 0x17 0x07 IRQ_TYPE_EDGE_RISING>; interrupt-names = "or-rid-detect-change", "vpd-detect", "cc-state-change", "vconn-oc", "vbus-change", "attach-detach", "legacy-cable-detect", "try-snk-src-detect", "sig-tx", "sig-rx", "msg-tx", "msg-rx", "msg-tx-failed", "msg-tx-discarded", "msg-rx-discarded", "fr-swap"; vdd-vbus-supply = <&pm8150b_vbus>; vdd-pdphy-supply = <&vreg_l2a_3p1>; connector { compatible = "usb-c-connector"; power-role = "source"; data-role = "dual"; self-powered; source-pdos = ; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; pmic_typec_mux_out: endpoint { remote-endpoint = <&usb_phy_typec_mux_in>; }; }; port@1 { reg = <1>; pmic_typec_role_switch_out: endpoint { remote-endpoint = <&usb_role_switch_in>; }; }; }; }; }; }; usb { dr_mode = "otg"; usb-role-switch; port { usb_role_switch_in: endpoint { remote-endpoint = <&pmic_typec_role_switch_out>; }; }; }; usb-phy { orientation-switch; port { usb_phy_typec_mux_in: endpoint { remote-endpoint = <&pmic_typec_mux_out>; }; }; }; ...