# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/qcom,msm8998-qmp-usb3-phy.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm QMP PHY controller (USB, MSM8998) maintainers: - Vinod Koul description: The QMP PHY controller supports physical layer functionality for USB-C on several Qualcomm chipsets. properties: compatible: enum: - qcom,msm8998-qmp-usb3-phy - qcom,qcm2290-qmp-usb3-phy - qcom,sdm660-qmp-usb3-phy - qcom,sm6115-qmp-usb3-phy reg: maxItems: 1 clocks: maxItems: 4 clock-names: maxItems: 4 resets: maxItems: 2 reset-names: items: - const: phy - const: phy_phy vdda-phy-supply: true vdda-pll-supply: true "#clock-cells": const: 0 clock-output-names: maxItems: 1 "#phy-cells": const: 0 orientation-switch: description: Flag the PHY as possible handler of USB Type-C orientation switching type: boolean qcom,tcsr-reg: $ref: /schemas/types.yaml#/definitions/phandle-array items: - items: - description: phandle to TCSR hardware block - description: offset of the VLS CLAMP register description: Clamp register present in the TCSR ports: $ref: /schemas/graph.yaml#/properties/ports properties: port@0: $ref: /schemas/graph.yaml#/properties/port description: Output endpoint of the PHY port@1: $ref: /schemas/graph.yaml#/properties/port description: Incoming endpoint from the USB controller required: - compatible - reg - clocks - clock-names - resets - reset-names - vdda-phy-supply - vdda-pll-supply - "#clock-cells" - clock-output-names - "#phy-cells" - qcom,tcsr-reg allOf: - if: properties: compatible: contains: enum: - qcom,msm8998-qmp-usb3-phy - qcom,sdm660-qmp-usb3-phy then: properties: clocks: maxItems: 4 clock-names: items: - const: aux - const: ref - const: cfg_ahb - const: pipe - if: properties: compatible: contains: enum: - qcom,qcm2290-qmp-usb3-phy - qcom,sm6115-qmp-usb3-phy then: properties: clocks: maxItems: 4 clock-names: items: - const: cfg_ahb - const: ref - const: com_aux - const: pipe additionalProperties: false examples: - | #include #include phy@c010000 { compatible = "qcom,msm8998-qmp-usb3-phy"; reg = <0x0c010000 0x1000>; clocks = <&gcc GCC_USB3_PHY_AUX_CLK>, <&gcc GCC_USB3_CLKREF_CLK>, <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, <&gcc GCC_USB3_PHY_PIPE_CLK>; clock-names = "aux", "ref", "cfg_ahb", "pipe"; clock-output-names = "usb3_phy_pipe_clk_src"; #clock-cells = <0>; #phy-cells = <0>; resets = <&gcc GCC_USB3_PHY_BCR>, <&gcc GCC_USB3PHY_PHY_BCR>; reset-names = "phy", "phy_phy"; vdda-phy-supply = <&vreg_l1a_0p875>; vdda-pll-supply = <&vreg_l2a_1p2>; orientation-switch; qcom,tcsr-reg = <&tcsr_regs_1 0x6b244>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; endpoint { remote-endpoint = <&pmic_typec_mux_in>; }; }; port@1 { reg = <1>; endpoint { remote-endpoint = <&usb_dwc3_ss>; }; }; }; };