xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMVEBU comphy drivers
2*4882a593Smuzhiyun--------------------
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunCOMPHY controllers can be found on the following Marvell MVEBU SoCs:
5*4882a593Smuzhiyun* Armada 7k/8k (on the CP110)
6*4882a593Smuzhiyun* Armada 3700
7*4882a593SmuzhiyunIt provides a number of shared PHYs used by various interfaces (network, SATA,
8*4882a593SmuzhiyunUSB, PCIe...).
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunRequired properties:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun- compatible: should be one of:
13*4882a593Smuzhiyun  * "marvell,comphy-cp110" for Armada 7k/8k
14*4882a593Smuzhiyun  * "marvell,comphy-a3700" for Armada 3700
15*4882a593Smuzhiyun- reg: should contain the COMPHY register(s) location(s) and length(s).
16*4882a593Smuzhiyun  * 1 entry for Armada 7k/8k
17*4882a593Smuzhiyun  * 4 entries for Armada 3700 along with the corresponding reg-names
18*4882a593Smuzhiyun    properties, memory areas are:
19*4882a593Smuzhiyun    * Generic COMPHY registers
20*4882a593Smuzhiyun    * Lane 1 (PCIe/GbE)
21*4882a593Smuzhiyun    * Lane 0 (USB3/GbE)
22*4882a593Smuzhiyun    * Lane 2 (SATA/USB3)
23*4882a593Smuzhiyun- marvell,system-controller: should contain a phandle to the system
24*4882a593Smuzhiyun			     controller node (only for Armada 7k/8k)
25*4882a593Smuzhiyun- #address-cells: should be 1.
26*4882a593Smuzhiyun- #size-cells: should be 0.
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunOptional properlties:
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun- clocks: pointers to the reference clocks for this device (CP110 only),
31*4882a593Smuzhiyun          consequently: MG clock, MG Core clock, AXI clock.
32*4882a593Smuzhiyun- clock-names: names of used clocks for CP110 only, must be :
33*4882a593Smuzhiyun               "mg_clk", "mg_core_clk" and "axi_clk".
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunA sub-node is required for each comphy lane provided by the comphy.
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunRequired properties (child nodes):
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun- reg: COMPHY lane number.
40*4882a593Smuzhiyun- #phy-cells : from the generic PHY bindings, must be 1. Defines the
41*4882a593Smuzhiyun               input port to use for a given comphy lane.
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunExamples:
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	cpm_comphy: phy@120000 {
46*4882a593Smuzhiyun		compatible = "marvell,comphy-cp110";
47*4882a593Smuzhiyun		reg = <0x120000 0x6000>;
48*4882a593Smuzhiyun		marvell,system-controller = <&cpm_syscon0>;
49*4882a593Smuzhiyun		clocks = <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 6>,
50*4882a593Smuzhiyun			 <&CP110_LABEL(clk) 1 18>;
51*4882a593Smuzhiyun		clock-names = "mg_clk", "mg_core_clk", "axi_clk";
52*4882a593Smuzhiyun		#address-cells = <1>;
53*4882a593Smuzhiyun		#size-cells = <0>;
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun		cpm_comphy0: phy@0 {
56*4882a593Smuzhiyun			reg = <0>;
57*4882a593Smuzhiyun			#phy-cells = <1>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		cpm_comphy1: phy@1 {
61*4882a593Smuzhiyun			reg = <1>;
62*4882a593Smuzhiyun			#phy-cells = <1>;
63*4882a593Smuzhiyun		};
64*4882a593Smuzhiyun	};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	comphy: phy@18300 {
67*4882a593Smuzhiyun		compatible = "marvell,comphy-a3700";
68*4882a593Smuzhiyun		reg = <0x18300 0x300>,
69*4882a593Smuzhiyun		<0x1F000 0x400>,
70*4882a593Smuzhiyun		<0x5C000 0x400>,
71*4882a593Smuzhiyun		<0xe0178 0x8>;
72*4882a593Smuzhiyun		reg-names = "comphy",
73*4882a593Smuzhiyun		"lane1_pcie_gbe",
74*4882a593Smuzhiyun		"lane0_usb3_gbe",
75*4882a593Smuzhiyun		"lane2_sata_usb3";
76*4882a593Smuzhiyun		#address-cells = <1>;
77*4882a593Smuzhiyun		#size-cells = <0>;
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		comphy0: phy@0 {
81*4882a593Smuzhiyun			reg = <0>;
82*4882a593Smuzhiyun			#phy-cells = <1>;
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		comphy1: phy@1 {
86*4882a593Smuzhiyun			reg = <1>;
87*4882a593Smuzhiyun			#phy-cells = <1>;
88*4882a593Smuzhiyun		};
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun		comphy2: phy@2 {
91*4882a593Smuzhiyun			reg = <2>;
92*4882a593Smuzhiyun			#phy-cells = <1>;
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun	};
95