]> rtime.felk.cvut.cz Git - zynq/linux.git/blob - Documentation/devicetree/bindings/phy/phy-zynqmp.txt
phy: zynqmp: Use eemi framework for performing ULPI reset sequence
[zynq/linux.git] / Documentation / devicetree / bindings / phy / phy-zynqmp.txt
1 Xilinx ZynqMP PHY binding
2
3 This binding describes a ZynqMP PHY device that is used to control ZynqMP
4 High Speed Gigabit Transceiver(GT). ZynqMP PS GTR provides four lanes
5 and are used by USB, SATA, PCIE, Display port and Ethernet SGMMI controllers.
6
7 Required properties (controller (parent) node):
8 - compatible    : Can be "xlnx,zynqmp-psgtr-v1.1" or "xlnx,zynqmp-psgtr"
9                   "xlnx,zynqmp-psgtr-v1.1" has the lpd address mapping removed
10
11 - reg           : Address and length of register sets for each device in
12                   "reg-names"
13 - reg-names     : The names of the register addresses corresponding to the
14                   registers filled in "reg":
15                         - serdes: SERDES block register set
16                         - siou: SIOU block register set
17                         - lpd: Low power domain peripherals reset control
18
19 Required nodes  :  A sub-node is required for each lane the controller
20                    provides.
21
22 Required properties (port (child) nodes):
23 lane0:
24 - #phy-cells    : Should be 4
25                   Cell after port phandle is device type from:
26                         - <PHY_TYPE_PCIE 0 LANE_NUM FREQUENCY>
27                         - <PHY_TYPE_SATA 0 LANE_NUM FREQUENCY>
28                         - <PHY_TYPE_USB3 0 LANE_NUM FREQUENCY>
29                         - <PHY_TYPE_DP 1 LANE_NUM FREQUENCY>
30                         - <PHY_TYPE_SGMII 0 LANE_NUM FREQUENCY>
31 lane1:
32 - #phy-cells    : Should be 4
33                   Cell after port phandle is device type from:
34                         - <PHY_TYPE_PCIE 1 LANE_NUM FREQUENCY>
35                         - <PHY_TYPE_SATA 1 LANE_NUM FREQUENCY>
36                         - <PHY_TYPE_USB3 0 LANE_NUM FREQUENCY>
37                         - <PHY_TYPE_DP 0 LANE_NUM FREQUENCY>
38                         - <PHY_TYPE_SGMII 1 LANE_NUM FREQUENCY>
39 lane2:
40 - #phy-cells    : Should be 4
41                   Cell after port phandle is device type from:
42                         - <PHY_TYPE_PCIE 2 LANE_NUM FREQUENCY>
43                         - <PHY_TYPE_SATA 0 LANE_NUM FREQUENCY>
44                         - <PHY_TYPE_USB3 0 LANE_NUM FREQUENCY>
45                         - <PHY_TYPE_DP 1 LANE_NUM FREQUENC>
46                         - <PHY_TYPE_SGMII 2 LANE_NUM FREQUENCY>
47 lane3:
48 - #phy-cells    : Should be 4
49                   Cell after port phandle is device type from:
50                         - <PHY_TYPE_PCIE 3 LANE_NUM FREQUENCY>
51                         - <PHY_TYPE_SATA 1 LANE_NUM FREQUENCY>
52                         - <PHY_TYPE_USB3 1 LANE_NUM FREQUENCY >
53                         - <PHY_TYPE_DP 0 LANE_NUM FREQUENCY>
54                         - <PHY_TYPE_SGMII 3 LANE_NUM FREQUENCY>
55
56 Note:   LANE_NUM : This determines which lane's reference clock is shared by controller.
57         FREQUENCY: This the clock frequency at which controller wants to operate.
58
59
60 Example:
61         serdes: zynqmp_phy@fd400000 {
62                 compatible = "xlnx,zynqmp-psgtr";
63                 status = "okay";
64                 reg = <0x0 0xfd400000 0x0 0x40000>, <0x0 0xfd3d0000 0x0 0x1000>,
65                         <0x0 0xff5e0000 0x0 0x1000>;
66                 reg-names = "serdes", "siou", "lpd";
67
68                 lane0: lane@0 {
69                         #phy-cells = <4>;
70                 };
71                 lane1: lane@1 {
72                         #phy-cells = <4>;
73                 };
74                 lane2: lane@2 {
75                         #phy-cells = <4>;
76                 };
77                 lane3: lane@3 {
78                         #phy-cells = <4>;
79                 };
80         };
81
82 Specifying phy control of devices
83 =================================
84
85 Device nodes should specify the configuration required in their "phys"
86 property, containing a phandle to the phy port node and a device type.
87
88 phys = <PHANDLE CONTROLLER_TYPE CONTROLLER_INSTANCE LANE_NUM LANE_FREQ>;
89
90 PHANDLE                 = &lane0 or &lane1 or &lane2 or &lane3
91 CONTROLLER_TYPE         = PHY_TYPE_PCIE or PHY_TYPE_SATA or PHY_TYPE_USB
92                           or PHY_TYPE_DP or PHY_TYPE_SGMII
93 CONTROLLER_INSTANCE     = Depends on controller type used, can be any of
94                                 PHY_TYPE_PCIE : 0 or 1 or 2 or 3
95                                 PHY_TYPE_SATA : 0 or 1
96                                 PHY_TYPE_USB  : 0 or 1
97                                 PHY_TYPE_DP   : 0 or 1
98                                 PHY_TYPE_SGMII: 0 or 1 or 2 or 3
99 LANE_NUM                = Depends on which lane clock is used as ref clk, can be
100                           0 or 1 or 2 or 3
101 LANE_FREQ               = Frequency that controller can operate, can be any of
102                           19.2Mhz,20Mhz,24Mhz,26Mhz,27Mhz,28.4Mhz,40Mhz,52Mhz,
103                           100Mhz,108Mhz,125Mhz,135Mhz,150Mhz
104
105 Example:
106
107 #include <dt-bindings/phy/phy.h>
108
109         usb@fe200000 {
110                 ...
111                 phys      = <&lane2 PHY_TYPE_USB3 0 2 2600000>;
112                 ...
113         };
114
115         ahci@fd0c0000 {
116                 ...
117                 phys      = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
118                 ...
119         };