xref: /linux/Documentation/devicetree/bindings/phy/qcom,qcs615-qmp-usb3dp-phy.yaml (revision 16e6a1a3cb3fa5fa11cd76a9d71235d927923329)
170f12a4cSXiangxu Yin# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
270f12a4cSXiangxu Yin%YAML 1.2
370f12a4cSXiangxu Yin---
470f12a4cSXiangxu Yin$id: http://devicetree.org/schemas/phy/qcom,qcs615-qmp-usb3dp-phy.yaml#
570f12a4cSXiangxu Yin$schema: http://devicetree.org/meta-schemas/core.yaml#
670f12a4cSXiangxu Yin
770f12a4cSXiangxu Yintitle: Qualcomm QMP USB3-DP PHY controller (DP, QCS615)
870f12a4cSXiangxu Yin
970f12a4cSXiangxu Yinmaintainers:
1070f12a4cSXiangxu Yin  - Xiangxu Yin <xiangxu.yin@oss.qualcomm.com>
1170f12a4cSXiangxu Yin
1270f12a4cSXiangxu Yindescription:
1370f12a4cSXiangxu Yin  The QMP PHY controller supports physical layer functionality for both USB3
1470f12a4cSXiangxu Yin  and DisplayPort over USB-C. While it enables mode switching between USB3 and
1570f12a4cSXiangxu Yin  DisplayPort, but does not support combo mode.
1670f12a4cSXiangxu Yin
1770f12a4cSXiangxu Yinproperties:
1870f12a4cSXiangxu Yin  compatible:
1970f12a4cSXiangxu Yin    enum:
2070f12a4cSXiangxu Yin      - qcom,qcs615-qmp-usb3-dp-phy
21*49e31058SKrishna Kurapati      - qcom,shikra-qmp-usb3-dp-phy
2270f12a4cSXiangxu Yin
2370f12a4cSXiangxu Yin  reg:
2470f12a4cSXiangxu Yin    maxItems: 1
2570f12a4cSXiangxu Yin
2670f12a4cSXiangxu Yin  clocks:
2770f12a4cSXiangxu Yin    maxItems: 4
2870f12a4cSXiangxu Yin
2970f12a4cSXiangxu Yin  clock-names:
3070f12a4cSXiangxu Yin    items:
3170f12a4cSXiangxu Yin      - const: aux
3270f12a4cSXiangxu Yin      - const: ref
3370f12a4cSXiangxu Yin      - const: cfg_ahb
3470f12a4cSXiangxu Yin      - const: pipe
3570f12a4cSXiangxu Yin
3670f12a4cSXiangxu Yin  resets:
37*49e31058SKrishna Kurapati    minItems: 2
38*49e31058SKrishna Kurapati    maxItems: 3
3970f12a4cSXiangxu Yin
4070f12a4cSXiangxu Yin  reset-names:
41*49e31058SKrishna Kurapati    minItems: 2
4270f12a4cSXiangxu Yin    items:
4370f12a4cSXiangxu Yin      - const: phy_phy
4470f12a4cSXiangxu Yin      - const: dp_phy
45*49e31058SKrishna Kurapati      - const: phy
4670f12a4cSXiangxu Yin
4770f12a4cSXiangxu Yin  vdda-phy-supply: true
4870f12a4cSXiangxu Yin
4970f12a4cSXiangxu Yin  vdda-pll-supply: true
5070f12a4cSXiangxu Yin
5170f12a4cSXiangxu Yin  "#clock-cells":
5270f12a4cSXiangxu Yin    const: 1
5370f12a4cSXiangxu Yin    description:
5470f12a4cSXiangxu Yin      See include/dt-bindings/phy/phy-qcom-qmp.h
5570f12a4cSXiangxu Yin
5670f12a4cSXiangxu Yin  "#phy-cells":
5770f12a4cSXiangxu Yin    const: 1
5870f12a4cSXiangxu Yin    description:
5970f12a4cSXiangxu Yin      See include/dt-bindings/phy/phy-qcom-qmp.h
6070f12a4cSXiangxu Yin
6170f12a4cSXiangxu Yin  qcom,tcsr-reg:
6270f12a4cSXiangxu Yin    $ref: /schemas/types.yaml#/definitions/phandle-array
6370f12a4cSXiangxu Yin    items:
6470f12a4cSXiangxu Yin      - items:
6570f12a4cSXiangxu Yin          - description: phandle to TCSR hardware block
6670f12a4cSXiangxu Yin          - description: offset of the VLS CLAMP register
6770f12a4cSXiangxu Yin          - description: offset of the PHY mode register
6870f12a4cSXiangxu Yin    description: Clamp and PHY mode register present in the TCSR
6970f12a4cSXiangxu Yin
70*49e31058SKrishna Kurapati  orientation-switch:
71*49e31058SKrishna Kurapati    description:
72*49e31058SKrishna Kurapati      Flag the PHY as possible handler of USB Type-C orientation switching
73*49e31058SKrishna Kurapati    type: boolean
74*49e31058SKrishna Kurapati
75*49e31058SKrishna Kurapati  ports:
76*49e31058SKrishna Kurapati    $ref: /schemas/graph.yaml#/properties/ports
77*49e31058SKrishna Kurapati    properties:
78*49e31058SKrishna Kurapati      port@0:
79*49e31058SKrishna Kurapati        $ref: /schemas/graph.yaml#/properties/port
80*49e31058SKrishna Kurapati        description: Output endpoint of the PHY
81*49e31058SKrishna Kurapati
82*49e31058SKrishna Kurapati      port@1:
83*49e31058SKrishna Kurapati        $ref: /schemas/graph.yaml#/properties/port
84*49e31058SKrishna Kurapati        description: Incoming endpoint from the USB controller
85*49e31058SKrishna Kurapati
8670f12a4cSXiangxu Yinrequired:
8770f12a4cSXiangxu Yin  - compatible
8870f12a4cSXiangxu Yin  - reg
8970f12a4cSXiangxu Yin  - clocks
9070f12a4cSXiangxu Yin  - clock-names
9170f12a4cSXiangxu Yin  - resets
9270f12a4cSXiangxu Yin  - reset-names
9370f12a4cSXiangxu Yin  - vdda-phy-supply
9470f12a4cSXiangxu Yin  - vdda-pll-supply
9570f12a4cSXiangxu Yin  - "#clock-cells"
9670f12a4cSXiangxu Yin  - "#phy-cells"
9770f12a4cSXiangxu Yin  - qcom,tcsr-reg
9870f12a4cSXiangxu Yin
9970f12a4cSXiangxu YinadditionalProperties: false
10070f12a4cSXiangxu Yin
101*49e31058SKrishna KurapatiallOf:
102*49e31058SKrishna Kurapati  - if:
103*49e31058SKrishna Kurapati      properties:
104*49e31058SKrishna Kurapati        compatible:
105*49e31058SKrishna Kurapati          contains:
106*49e31058SKrishna Kurapati            enum:
107*49e31058SKrishna Kurapati              - qcom,shikra-qmp-usb3-dp-phy
108*49e31058SKrishna Kurapati    then:
109*49e31058SKrishna Kurapati      properties:
110*49e31058SKrishna Kurapati        resets:
111*49e31058SKrishna Kurapati          minItems: 3
112*49e31058SKrishna Kurapati        reset-names:
113*49e31058SKrishna Kurapati          minItems: 3
114*49e31058SKrishna Kurapati
115*49e31058SKrishna Kurapati  - if:
116*49e31058SKrishna Kurapati      properties:
117*49e31058SKrishna Kurapati        compatible:
118*49e31058SKrishna Kurapati          contains:
119*49e31058SKrishna Kurapati            enum:
120*49e31058SKrishna Kurapati              - qcom,qcs615-qmp-usb3-dp-phy
121*49e31058SKrishna Kurapati    then:
122*49e31058SKrishna Kurapati      properties:
123*49e31058SKrishna Kurapati        resets:
124*49e31058SKrishna Kurapati          maxItems: 2
125*49e31058SKrishna Kurapati        reset-names:
126*49e31058SKrishna Kurapati          maxItems: 2
127*49e31058SKrishna Kurapati
12870f12a4cSXiangxu Yinexamples:
12970f12a4cSXiangxu Yin  - |
13070f12a4cSXiangxu Yin    #include <dt-bindings/clock/qcom,qcs615-gcc.h>
13170f12a4cSXiangxu Yin    #include <dt-bindings/clock/qcom,rpmh.h>
13270f12a4cSXiangxu Yin
13370f12a4cSXiangxu Yin    phy@88e8000 {
13470f12a4cSXiangxu Yin      compatible = "qcom,qcs615-qmp-usb3-dp-phy";
13570f12a4cSXiangxu Yin      reg = <0x88e8000 0x2000>;
13670f12a4cSXiangxu Yin
13770f12a4cSXiangxu Yin      clocks = <&gcc GCC_USB2_SEC_PHY_AUX_CLK>,
13870f12a4cSXiangxu Yin               <&gcc GCC_USB3_SEC_CLKREF_CLK>,
13970f12a4cSXiangxu Yin               <&gcc GCC_AHB2PHY_WEST_CLK>,
14070f12a4cSXiangxu Yin               <&gcc GCC_USB2_SEC_PHY_PIPE_CLK>;
14170f12a4cSXiangxu Yin      clock-names = "aux",
14270f12a4cSXiangxu Yin                    "ref",
14370f12a4cSXiangxu Yin                    "cfg_ahb",
14470f12a4cSXiangxu Yin                    "pipe";
14570f12a4cSXiangxu Yin
14670f12a4cSXiangxu Yin      resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
14770f12a4cSXiangxu Yin               <&gcc GCC_USB3_DP_PHY_SEC_BCR>;
14870f12a4cSXiangxu Yin      reset-names = "phy_phy",
14970f12a4cSXiangxu Yin                    "dp_phy";
15070f12a4cSXiangxu Yin
15170f12a4cSXiangxu Yin      vdda-phy-supply = <&vreg_l5a>;
15270f12a4cSXiangxu Yin      vdda-pll-supply = <&vreg_l12a>;
15370f12a4cSXiangxu Yin
15470f12a4cSXiangxu Yin      #clock-cells = <1>;
15570f12a4cSXiangxu Yin      #phy-cells = <1>;
15670f12a4cSXiangxu Yin
15770f12a4cSXiangxu Yin      qcom,tcsr-reg = <&tcsr 0xbff0 0xb24c>;
15870f12a4cSXiangxu Yin    };
159