xref: /linux/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml (revision d12ed2b7e1fe5c9e4a372a95fb7635a7f81eff6a)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/phy-rockchip-usbdp.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip USBDP Combo PHY with Samsung IP block
8
9maintainers:
10  - Frank Wang <frank.wang@rock-chips.com>
11  - Zhang Yubing <yubing.zhang@rock-chips.com>
12
13properties:
14  compatible:
15    enum:
16      - rockchip,rk3576-usbdp-phy
17      - rockchip,rk3588-usbdp-phy
18
19  reg:
20    maxItems: 1
21
22  "#phy-cells":
23    description: |
24      Cell allows setting the type of the PHY. Possible values are:
25      - PHY_TYPE_USB3
26      - PHY_TYPE_DP
27    const: 1
28
29  clocks:
30    maxItems: 4
31
32  clock-names:
33    items:
34      - const: refclk
35      - const: immortal
36      - const: pclk
37      - const: utmi
38
39  resets:
40    maxItems: 5
41
42  reset-names:
43    items:
44      - const: init
45      - const: cmn
46      - const: lane
47      - const: pcs_apb
48      - const: pma_apb
49
50  phy-supply:
51    description: Single PHY regulator
52
53  rockchip,dp-lane-mux:
54    $ref: /schemas/types.yaml#/definitions/uint32-array
55    minItems: 2
56    maxItems: 4
57    items:
58      maximum: 3
59    description:
60      An array of physical Type-C lanes indexes. Position of an entry
61      determines the DisplayPort (DP) lane index, while the value of an entry
62      indicates physical Type-C lane. The supported DP lanes number are 2 or 4.
63      e.g. for 2 lanes DP lanes map, we could have "rockchip,dp-lane-mux = <2,
64      3>;", assuming DP lane0 on Type-C phy lane2, DP lane1 on Type-C phy
65      lane3. For 4 lanes DP lanes map, we could have "rockchip,dp-lane-mux =
66      <0, 1, 2, 3>;", assuming DP lane0 on Type-C phy lane0, DP lane1 on Type-C
67      phy lane1, DP lane2 on Type-C phy lane2, DP lane3 on Type-C phy lane3. If
68      DP lanes are mapped by DisplayPort Alt mode, this property is not needed.
69
70  rockchip,u2phy-grf:
71    $ref: /schemas/types.yaml#/definitions/phandle
72    description:
73      Phandle to the syscon managing the 'usb2 phy general register files'.
74
75  rockchip,usb-grf:
76    $ref: /schemas/types.yaml#/definitions/phandle
77    description:
78      Phandle to the syscon managing the 'usb general register files'.
79
80  rockchip,usbdpphy-grf:
81    $ref: /schemas/types.yaml#/definitions/phandle
82    description:
83      Phandle to the syscon managing the 'usbdp phy general register files'.
84
85  rockchip,vo-grf:
86    $ref: /schemas/types.yaml#/definitions/phandle
87    description:
88      Phandle to the syscon managing the 'video output general register files'.
89      When select the DP lane mapping will request its phandle.
90
91  sbu1-dc-gpios:
92    description:
93      GPIO connected to the SBU1 line of the USB-C connector via a big resistor
94      (~100K) to apply a DC offset for signalling the connector orientation.
95    maxItems: 1
96
97  sbu2-dc-gpios:
98    description:
99      GPIO connected to the SBU2 line of the USB-C connector via a big resistor
100      (~100K) to apply a DC offset for signalling the connector orientation.
101    maxItems: 1
102
103  orientation-switch:
104    description: Flag the port as possible handler of orientation switching
105    type: boolean
106
107  mode-switch:
108    description: Flag the port as possible handler of altmode switching
109    type: boolean
110
111  port:
112    $ref: /schemas/graph.yaml#/properties/port
113    description:
114      A port node to link the PHY to a TypeC controller for the purpose of
115      handling orientation switching.
116
117required:
118  - compatible
119  - reg
120  - clocks
121  - clock-names
122  - resets
123  - reset-names
124  - "#phy-cells"
125
126additionalProperties: false
127
128examples:
129  - |
130    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
131    #include <dt-bindings/reset/rockchip,rk3588-cru.h>
132
133    usbdp_phy0: phy@fed80000 {
134      compatible = "rockchip,rk3588-usbdp-phy";
135      reg = <0xfed80000 0x10000>;
136      #phy-cells = <1>;
137      clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
138               <&cru CLK_USBDP_PHY0_IMMORTAL>,
139               <&cru PCLK_USBDPPHY0>,
140               <&u2phy0>;
141      clock-names = "refclk", "immortal", "pclk", "utmi";
142      resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
143               <&cru SRST_USBDP_COMBO_PHY0_CMN>,
144               <&cru SRST_USBDP_COMBO_PHY0_LANE>,
145               <&cru SRST_USBDP_COMBO_PHY0_PCS>,
146               <&cru SRST_P_USBDPPHY0>;
147      reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
148      rockchip,u2phy-grf = <&usb2phy0_grf>;
149      rockchip,usb-grf = <&usb_grf>;
150      rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
151      rockchip,vo-grf = <&vo0_grf>;
152    };
153