hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
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
* ROCKCHIP type-c PHY
---------------------
 
Required properties:
 - compatible : must be "rockchip,rk3399-typec-phy"
 - reg: Address and length of the usb phy control register set
 - rockchip,grf : phandle to the syscon managing the "general
   register files"
 - clocks : phandle + clock specifier for the phy clocks
 - clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref";
 - assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or
           <&cru SCLK_UPHY1_TCPDCORE>;
 - assigned-clock-rates : the phy core clk frequency, shall be: 50000000
 - resets : a list of phandle + reset specifier pairs
 - reset-names : string reset name, must be:
        "uphy", "uphy-pipe", "uphy-tcphy"
 
Optional properties:
 - extcon : extcon specifier for the Power Delivery
 - rockchip,phy-config : A list of voltage swing(mV) and pre-emphasis
           (dB) pairs. They are 3 blocks of 4 entries and
           correspond to s0p0 ~ s0p3, s1p0 ~ s1p3,
           s2p0 ~ s2p3, s3p0 ~ s2p3 swing and pre-emphasis
           values.
 
Required nodes : a sub-node is required for each port the phy provides.
        The sub-node name is used to identify dp or usb3 port,
        and shall be the following entries:
   * "dp-port" : the name of DP port.
   * "usb3-port" : the name of USB3 port.
 
Required properties (port (child) node):
- #phy-cells : must be 0, See ./phy-bindings.txt for details.
 
Deprecated properties, do not use in new device tree sources, these
properties are determined by the compatible value:
 - rockchip,typec-conn-dir
 - rockchip,usb3tousb2-en
 - rockchip,external-psm
 - rockchip,pipe-status
 
Example:
   tcphy0: phy@ff7c0000 {
       compatible = "rockchip,rk3399-typec-phy";
       reg = <0x0 0xff7c0000 0x0 0x40000>;
       rockchip,grf = <&grf>;
       extcon = <&fusb0>;
       clocks = <&cru SCLK_UPHY0_TCPDCORE>,
            <&cru SCLK_UPHY0_TCPDPHY_REF>;
       clock-names = "tcpdcore", "tcpdphy-ref";
       assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
       assigned-clock-rates = <50000000>;
       resets = <&cru SRST_UPHY0>,
            <&cru SRST_UPHY0_PIPE_L00>,
            <&cru SRST_P_UPHY0_TCPHY>;
       reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
 
       rockchip,phy-config = <0x2a 0x00>,
           <0x1f 0x15>,
           <0x14 0x22>,
           <0x02 0x2b>,
 
           <0x21 0x00>,
           <0x12 0x15>,
           <0x02 0x22>,
           <0 0>,
 
           <0x15 0x00>,
           <0x00 0x15>,
           <0 0>,
           <0 0>;
 
       tcphy0_dp: dp-port {
           #phy-cells = <0>;
       };
 
       tcphy0_usb3: usb3-port {
           #phy-cells = <0>;
       };
   };
 
   tcphy1: phy@ff800000 {
       compatible = "rockchip,rk3399-typec-phy";
       reg = <0x0 0xff800000 0x0 0x40000>;
       rockchip,grf = <&grf>;
       extcon = <&fusb1>;
       clocks = <&cru SCLK_UPHY1_TCPDCORE>,
            <&cru SCLK_UPHY1_TCPDPHY_REF>;
       clock-names = "tcpdcore", "tcpdphy-ref";
       assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
       assigned-clock-rates = <50000000>;
       resets = <&cru SRST_UPHY1>,
            <&cru SRST_UPHY1_PIPE_L00>,
            <&cru SRST_P_UPHY1_TCPHY>;
       reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
 
       rockchip,phy-config = <0x2a 0x00>,
           <0x1f 0x15>,
           <0x14 0x22>,
           <0x02 0x2b>,
 
           <0x21 0x00>,
           <0x12 0x15>,
           <0x02 0x22>,
           <0 0>,
 
           <0x15 0x00>,
           <0x00 0x15>,
           <0 0>,
           <0 0>;
 
       tcphy1_dp: dp-port {
           #phy-cells = <0>;
       };
 
       tcphy1_usb3: usb3-port {
           #phy-cells = <0>;
       };
   };