aboutsummaryrefslogtreecommitdiff
path: root/Bindings/phy/phy-rockchip-usbdp.yaml
blob: 1f1f8863b80d056a3825c9ecf34c03c9b0f542ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/phy-rockchip-usbdp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip USBDP Combo PHY with Samsung IP block

maintainers:
  - Frank Wang <frank.wang@rock-chips.com>
  - Zhang Yubing <yubing.zhang@rock-chips.com>

properties:
  compatible:
    enum:
      - rockchip,rk3588-usbdp-phy

  reg:
    maxItems: 1

  "#phy-cells":
    description: |
      Cell allows setting the type of the PHY. Possible values are:
      - PHY_TYPE_USB3
      - PHY_TYPE_DP
    const: 1

  clocks:
    maxItems: 4

  clock-names:
    items:
      - const: refclk
      - const: immortal
      - const: pclk
      - const: utmi

  resets:
    maxItems: 5

  reset-names:
    items:
      - const: init
      - const: cmn
      - const: lane
      - const: pcs_apb
      - const: pma_apb

  rockchip,dp-lane-mux:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 4
    items:
      maximum: 3
    description:
      An array of physical Type-C lanes indexes. Position of an entry
      determines the DisplayPort (DP) lane index, while the value of an entry
      indicates physical Type-C lane. The supported DP lanes number are 2 or 4.
      e.g. for 2 lanes DP lanes map, we could have "rockchip,dp-lane-mux = <2,
      3>;", assuming DP lane0 on Type-C phy lane2, DP lane1 on Type-C phy
      lane3. For 4 lanes DP lanes map, we could have "rockchip,dp-lane-mux =
      <0, 1, 2, 3>;", assuming DP lane0 on Type-C phy lane0, DP lane1 on Type-C
      phy lane1, DP lane2 on Type-C phy lane2, DP lane3 on Type-C phy lane3. If
      DP lanes are mapped by DisplayPort Alt mode, this property is not needed.

  rockchip,u2phy-grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the syscon managing the 'usb2 phy general register files'.

  rockchip,usb-grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the syscon managing the 'usb general register files'.

  rockchip,usbdpphy-grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the syscon managing the 'usbdp phy general register files'.

  rockchip,vo-grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the syscon managing the 'video output general register files'.
      When select the DP lane mapping will request its phandle.

  sbu1-dc-gpios:
    description:
      GPIO connected to the SBU1 line of the USB-C connector via a big resistor
      (~100K) to apply a DC offset for signalling the connector orientation.
    maxItems: 1

  sbu2-dc-gpios:
    description:
      GPIO connected to the SBU2 line of the USB-C connector via a big resistor
      (~100K) to apply a DC offset for signalling the connector orientation.
    maxItems: 1

  orientation-switch:
    description: Flag the port as possible handler of orientation switching
    type: boolean

  mode-switch:
    description: Flag the port as possible handler of altmode switching
    type: boolean

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      A port node to link the PHY to a TypeC controller for the purpose of
      handling orientation switching.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - resets
  - reset-names
  - "#phy-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
    #include <dt-bindings/reset/rockchip,rk3588-cru.h>

    usbdp_phy0: phy@fed80000 {
      compatible = "rockchip,rk3588-usbdp-phy";
      reg = <0xfed80000 0x10000>;
      #phy-cells = <1>;
      clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
               <&cru CLK_USBDP_PHY0_IMMORTAL>,
               <&cru PCLK_USBDPPHY0>,
               <&u2phy0>;
      clock-names = "refclk", "immortal", "pclk", "utmi";
      resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
               <&cru SRST_USBDP_COMBO_PHY0_CMN>,
               <&cru SRST_USBDP_COMBO_PHY0_LANE>,
               <&cru SRST_USBDP_COMBO_PHY0_PCS>,
               <&cru SRST_P_USBDPPHY0>;
      reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
      rockchip,u2phy-grf = <&usb2phy0_grf>;
      rockchip,usb-grf = <&usb_grf>;
      rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
      rockchip,vo-grf = <&vo0_grf>;
    };