xref: /openbmc/linux/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml (revision 1188f7f111c61394ec56beb8e30322305a8220b6)
1e1c4c543SJohan Hovold# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e1c4c543SJohan Hovold%YAML 1.2
3e1c4c543SJohan Hovold---
4e1c4c543SJohan Hovold$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml#
5e1c4c543SJohan Hovold$schema: http://devicetree.org/meta-schemas/core.yaml#
6e1c4c543SJohan Hovold
7e1c4c543SJohan Hovoldtitle: Qualcomm QMP USB4-USB3-DP PHY controller (SC8280XP)
8e1c4c543SJohan Hovold
9e1c4c543SJohan Hovoldmaintainers:
10e1c4c543SJohan Hovold  - Vinod Koul <vkoul@kernel.org>
11e1c4c543SJohan Hovold
12e1c4c543SJohan Hovolddescription:
13e1c4c543SJohan Hovold  The QMP PHY controller supports physical layer functionality for a number of
14e1c4c543SJohan Hovold  controllers on Qualcomm chipsets, such as, PCIe, UFS and USB.
15e1c4c543SJohan Hovold
16e1c4c543SJohan Hovoldproperties:
17e1c4c543SJohan Hovold  compatible:
18e1c4c543SJohan Hovold    enum:
1957a79ce9SDmitry Baryshkov      - qcom,sc7180-qmp-usb3-dp-phy
2057a79ce9SDmitry Baryshkov      - qcom,sc7280-qmp-usb3-dp-phy
2157a79ce9SDmitry Baryshkov      - qcom,sc8180x-qmp-usb3-dp-phy
22e1c4c543SJohan Hovold      - qcom,sc8280xp-qmp-usb43dp-phy
2357a79ce9SDmitry Baryshkov      - qcom,sdm845-qmp-usb3-dp-phy
245e271455SLuca Weiss      - qcom,sm6350-qmp-usb3-dp-phy
2557a79ce9SDmitry Baryshkov      - qcom,sm8150-qmp-usb3-dp-phy
2657a79ce9SDmitry Baryshkov      - qcom,sm8250-qmp-usb3-dp-phy
27d5011cd5SNeil Armstrong      - qcom,sm8350-qmp-usb3-dp-phy
28d5011cd5SNeil Armstrong      - qcom,sm8450-qmp-usb3-dp-phy
291c5a654fSAbel Vesa      - qcom,sm8550-qmp-usb3-dp-phy
30e1c4c543SJohan Hovold
31e1c4c543SJohan Hovold  reg:
32e1c4c543SJohan Hovold    maxItems: 1
33e1c4c543SJohan Hovold
34e1c4c543SJohan Hovold  clocks:
3557a79ce9SDmitry Baryshkov    minItems: 4
3657a79ce9SDmitry Baryshkov    maxItems: 5
37e1c4c543SJohan Hovold
38e1c4c543SJohan Hovold  clock-names:
3957a79ce9SDmitry Baryshkov    minItems: 4
40e1c4c543SJohan Hovold    items:
41e1c4c543SJohan Hovold      - const: aux
42e1c4c543SJohan Hovold      - const: ref
43e1c4c543SJohan Hovold      - const: com_aux
44e1c4c543SJohan Hovold      - const: usb3_pipe
4557a79ce9SDmitry Baryshkov      - const: cfg_ahb
46e1c4c543SJohan Hovold
47e1c4c543SJohan Hovold  power-domains:
48e1c4c543SJohan Hovold    maxItems: 1
49e1c4c543SJohan Hovold
50e1c4c543SJohan Hovold  resets:
51e1c4c543SJohan Hovold    maxItems: 2
52e1c4c543SJohan Hovold
53e1c4c543SJohan Hovold  reset-names:
54e1c4c543SJohan Hovold    items:
55e1c4c543SJohan Hovold      - const: phy
56e1c4c543SJohan Hovold      - const: common
57e1c4c543SJohan Hovold
58e1c4c543SJohan Hovold  vdda-phy-supply: true
59e1c4c543SJohan Hovold
60e1c4c543SJohan Hovold  vdda-pll-supply: true
61e1c4c543SJohan Hovold
62e1c4c543SJohan Hovold  "#clock-cells":
63e1c4c543SJohan Hovold    const: 1
64e1c4c543SJohan Hovold    description:
65*b6858131SKrzysztof Kozlowski      See include/dt-bindings/phy/phy-qcom-qmp.h
66e1c4c543SJohan Hovold
67e1c4c543SJohan Hovold  "#phy-cells":
68e1c4c543SJohan Hovold    const: 1
69e1c4c543SJohan Hovold    description:
70*b6858131SKrzysztof Kozlowski      See include/dt-bindings/phy/phy-qcom-qmp.h
71e1c4c543SJohan Hovold
726c0237dbSBjorn Andersson  orientation-switch:
736c0237dbSBjorn Andersson    description:
746c0237dbSBjorn Andersson      Flag the PHY as possible handler of USB Type-C orientation switching
756c0237dbSBjorn Andersson    type: boolean
766c0237dbSBjorn Andersson
776c0237dbSBjorn Andersson  ports:
786c0237dbSBjorn Andersson    $ref: /schemas/graph.yaml#/properties/ports
796c0237dbSBjorn Andersson    properties:
806c0237dbSBjorn Andersson      port@0:
816c0237dbSBjorn Andersson        $ref: /schemas/graph.yaml#/properties/port
826c0237dbSBjorn Andersson        description: Output endpoint of the PHY
836c0237dbSBjorn Andersson
846c0237dbSBjorn Andersson      port@1:
856c0237dbSBjorn Andersson        $ref: /schemas/graph.yaml#/properties/port
866c0237dbSBjorn Andersson        description: Incoming endpoint from the USB controller
876c0237dbSBjorn Andersson
886c0237dbSBjorn Andersson      port@2:
896c0237dbSBjorn Andersson        $ref: /schemas/graph.yaml#/properties/port
906c0237dbSBjorn Andersson        description: Incoming endpoint from the DisplayPort controller
916c0237dbSBjorn Andersson
92e1c4c543SJohan Hovoldrequired:
93e1c4c543SJohan Hovold  - compatible
94e1c4c543SJohan Hovold  - reg
95e1c4c543SJohan Hovold  - clocks
96e1c4c543SJohan Hovold  - clock-names
97e1c4c543SJohan Hovold  - resets
98e1c4c543SJohan Hovold  - reset-names
99e1c4c543SJohan Hovold  - vdda-phy-supply
100e1c4c543SJohan Hovold  - vdda-pll-supply
101e1c4c543SJohan Hovold  - "#clock-cells"
102e1c4c543SJohan Hovold  - "#phy-cells"
103e1c4c543SJohan Hovold
10457a79ce9SDmitry BaryshkovallOf:
10557a79ce9SDmitry Baryshkov  - if:
10657a79ce9SDmitry Baryshkov      properties:
10757a79ce9SDmitry Baryshkov        compatible:
10857a79ce9SDmitry Baryshkov          enum:
10957a79ce9SDmitry Baryshkov            - qcom,sc7180-qmp-usb3-dp-phy
11057a79ce9SDmitry Baryshkov            - qcom,sdm845-qmp-usb3-dp-phy
11157a79ce9SDmitry Baryshkov    then:
11257a79ce9SDmitry Baryshkov      properties:
11357a79ce9SDmitry Baryshkov        clocks:
11457a79ce9SDmitry Baryshkov          maxItems: 5
11557a79ce9SDmitry Baryshkov        clock-names:
11657a79ce9SDmitry Baryshkov          maxItems: 5
11757a79ce9SDmitry Baryshkov    else:
11857a79ce9SDmitry Baryshkov      properties:
11957a79ce9SDmitry Baryshkov        clocks:
12057a79ce9SDmitry Baryshkov          maxItems: 4
12157a79ce9SDmitry Baryshkov        clock-names:
12257a79ce9SDmitry Baryshkov          maxItems: 4
12357a79ce9SDmitry Baryshkov
12457a79ce9SDmitry Baryshkov  - if:
12557a79ce9SDmitry Baryshkov      properties:
12657a79ce9SDmitry Baryshkov        compatible:
12757a79ce9SDmitry Baryshkov          enum:
12857a79ce9SDmitry Baryshkov            - qcom,sc8280xp-qmp-usb43dp-phy
12957a79ce9SDmitry Baryshkov            - qcom,sm6350-qmp-usb3-dp-phy
13057a79ce9SDmitry Baryshkov            - qcom,sm8550-qmp-usb3-dp-phy
13157a79ce9SDmitry Baryshkov    then:
13257a79ce9SDmitry Baryshkov      required:
13357a79ce9SDmitry Baryshkov        - power-domains
13457a79ce9SDmitry Baryshkov    else:
13557a79ce9SDmitry Baryshkov      properties:
13657a79ce9SDmitry Baryshkov        power-domains: false
13757a79ce9SDmitry Baryshkov
138e1c4c543SJohan HovoldadditionalProperties: false
139e1c4c543SJohan Hovold
140e1c4c543SJohan Hovoldexamples:
141e1c4c543SJohan Hovold  - |
142e1c4c543SJohan Hovold    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
143e1c4c543SJohan Hovold
144e1c4c543SJohan Hovold    phy@88eb000 {
145e1c4c543SJohan Hovold      compatible = "qcom,sc8280xp-qmp-usb43dp-phy";
146e1c4c543SJohan Hovold      reg = <0x088eb000 0x4000>;
147e1c4c543SJohan Hovold
148e1c4c543SJohan Hovold      clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
149e1c4c543SJohan Hovold               <&gcc GCC_USB4_EUD_CLKREF_CLK>,
150e1c4c543SJohan Hovold               <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
151e1c4c543SJohan Hovold               <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
152e1c4c543SJohan Hovold      clock-names = "aux", "ref", "com_aux", "usb3_pipe";
153e1c4c543SJohan Hovold
154e1c4c543SJohan Hovold      power-domains = <&gcc USB30_PRIM_GDSC>;
155e1c4c543SJohan Hovold
156e1c4c543SJohan Hovold      resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
157e1c4c543SJohan Hovold               <&gcc GCC_USB4_DP_PHY_PRIM_BCR>;
158e1c4c543SJohan Hovold      reset-names = "phy", "common";
159e1c4c543SJohan Hovold
160e1c4c543SJohan Hovold      vdda-phy-supply = <&vreg_l9d>;
161e1c4c543SJohan Hovold      vdda-pll-supply = <&vreg_l4d>;
162e1c4c543SJohan Hovold
1636c0237dbSBjorn Andersson      orientation-switch;
1646c0237dbSBjorn Andersson
165e1c4c543SJohan Hovold      #clock-cells = <1>;
166e1c4c543SJohan Hovold      #phy-cells = <1>;
1676c0237dbSBjorn Andersson
1686c0237dbSBjorn Andersson      ports {
1696c0237dbSBjorn Andersson          #address-cells = <1>;
1706c0237dbSBjorn Andersson          #size-cells = <0>;
1716c0237dbSBjorn Andersson
1726c0237dbSBjorn Andersson          port@0 {
1736c0237dbSBjorn Andersson              reg = <0>;
1746c0237dbSBjorn Andersson
1756c0237dbSBjorn Andersson              endpoint {
1766c0237dbSBjorn Andersson                  remote-endpoint = <&typec_connector_ss>;
1776c0237dbSBjorn Andersson              };
1786c0237dbSBjorn Andersson          };
1796c0237dbSBjorn Andersson
1806c0237dbSBjorn Andersson          port@1 {
1816c0237dbSBjorn Andersson              reg = <1>;
1826c0237dbSBjorn Andersson
1836c0237dbSBjorn Andersson              endpoint {
1846c0237dbSBjorn Andersson                  remote-endpoint = <&dwc3_ss_out>;
1856c0237dbSBjorn Andersson              };
1866c0237dbSBjorn Andersson          };
1876c0237dbSBjorn Andersson
1886c0237dbSBjorn Andersson          port@2 {
1896c0237dbSBjorn Andersson              reg = <2>;
1906c0237dbSBjorn Andersson
1916c0237dbSBjorn Andersson              endpoint {
1926c0237dbSBjorn Andersson                  remote-endpoint = <&mdss_dp_out>;
1936c0237dbSBjorn Andersson              };
1946c0237dbSBjorn Andersson          };
1956c0237dbSBjorn Andersson      };
196e1c4c543SJohan Hovold    };
197