xref: /linux/Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt (revision 762f99f4f3cb41a775b5157dd761217beba65873)
16362f0a6SMiquel RaynalMVEBU comphy drivers
26362f0a6SMiquel Raynal--------------------
39c2cbd47SAntoine Tenart
46362f0a6SMiquel RaynalCOMPHY controllers can be found on the following Marvell MVEBU SoCs:
56362f0a6SMiquel Raynal* Armada 7k/8k (on the CP110)
66362f0a6SMiquel Raynal* Armada 3700
76362f0a6SMiquel RaynalIt provides a number of shared PHYs used by various interfaces (network, SATA,
86362f0a6SMiquel RaynalUSB, PCIe...).
99c2cbd47SAntoine Tenart
109c2cbd47SAntoine TenartRequired properties:
119c2cbd47SAntoine Tenart
126362f0a6SMiquel Raynal- compatible: should be one of:
136362f0a6SMiquel Raynal  * "marvell,comphy-cp110" for Armada 7k/8k
146362f0a6SMiquel Raynal  * "marvell,comphy-a3700" for Armada 3700
156362f0a6SMiquel Raynal- reg: should contain the COMPHY register(s) location(s) and length(s).
166362f0a6SMiquel Raynal  * 1 entry for Armada 7k/8k
176362f0a6SMiquel Raynal  * 4 entries for Armada 3700 along with the corresponding reg-names
186362f0a6SMiquel Raynal    properties, memory areas are:
196362f0a6SMiquel Raynal    * Generic COMPHY registers
206362f0a6SMiquel Raynal    * Lane 1 (PCIe/GbE)
216362f0a6SMiquel Raynal    * Lane 0 (USB3/GbE)
226362f0a6SMiquel Raynal    * Lane 2 (SATA/USB3)
236362f0a6SMiquel Raynal- marvell,system-controller: should contain a phandle to the system
246362f0a6SMiquel Raynal			     controller node (only for Armada 7k/8k)
259c2cbd47SAntoine Tenart- #address-cells: should be 1.
269c2cbd47SAntoine Tenart- #size-cells: should be 0.
279c2cbd47SAntoine Tenart
2806a09dc3SMiquel RaynalOptional properlties:
2906a09dc3SMiquel Raynal
3006a09dc3SMiquel Raynal- clocks: pointers to the reference clocks for this device (CP110 only),
3106a09dc3SMiquel Raynal          consequently: MG clock, MG Core clock, AXI clock.
3206a09dc3SMiquel Raynal- clock-names: names of used clocks for CP110 only, must be :
3306a09dc3SMiquel Raynal               "mg_clk", "mg_core_clk" and "axi_clk".
3406a09dc3SMiquel Raynal
359c2cbd47SAntoine TenartA sub-node is required for each comphy lane provided by the comphy.
369c2cbd47SAntoine Tenart
379c2cbd47SAntoine TenartRequired properties (child nodes):
389c2cbd47SAntoine Tenart
396362f0a6SMiquel Raynal- reg: COMPHY lane number.
406362f0a6SMiquel Raynal- #phy-cells : from the generic PHY bindings, must be 1. Defines the
419c2cbd47SAntoine Tenart               input port to use for a given comphy lane.
429c2cbd47SAntoine Tenart
436362f0a6SMiquel RaynalExamples:
449c2cbd47SAntoine Tenart
45*3a0dc9fbSGrzegorz Jaszczyk	CP11X_LABEL(comphy): phy@120000 {
469c2cbd47SAntoine Tenart		compatible = "marvell,comphy-cp110";
479c2cbd47SAntoine Tenart		reg = <0x120000 0x6000>;
48*3a0dc9fbSGrzegorz Jaszczyk		marvell,system-controller = <&CP11X_LABEL(syscon0)>;
49*3a0dc9fbSGrzegorz Jaszczyk		clocks = <&CP11X_LABEL(clk) 1 5>, <&CP11X_LABEL(clk) 1 6>,
50*3a0dc9fbSGrzegorz Jaszczyk			 <&CP11X_LABEL(clk) 1 18>;
5106a09dc3SMiquel Raynal		clock-names = "mg_clk", "mg_core_clk", "axi_clk";
529c2cbd47SAntoine Tenart		#address-cells = <1>;
539c2cbd47SAntoine Tenart		#size-cells = <0>;
549c2cbd47SAntoine Tenart
55*3a0dc9fbSGrzegorz Jaszczyk		CP11X_LABEL(comphy0): phy@0 {
569c2cbd47SAntoine Tenart			reg = <0>;
579c2cbd47SAntoine Tenart			#phy-cells = <1>;
589c2cbd47SAntoine Tenart		};
599c2cbd47SAntoine Tenart
60*3a0dc9fbSGrzegorz Jaszczyk		CP11X_LABEL(comphy1): phy@1 {
619c2cbd47SAntoine Tenart			reg = <1>;
629c2cbd47SAntoine Tenart			#phy-cells = <1>;
639c2cbd47SAntoine Tenart		};
649c2cbd47SAntoine Tenart	};
656362f0a6SMiquel Raynal
666362f0a6SMiquel Raynal	comphy: phy@18300 {
676362f0a6SMiquel Raynal		compatible = "marvell,comphy-a3700";
686362f0a6SMiquel Raynal		reg = <0x18300 0x300>,
696362f0a6SMiquel Raynal		<0x1F000 0x400>,
706362f0a6SMiquel Raynal		<0x5C000 0x400>,
716362f0a6SMiquel Raynal		<0xe0178 0x8>;
726362f0a6SMiquel Raynal		reg-names = "comphy",
736362f0a6SMiquel Raynal		"lane1_pcie_gbe",
746362f0a6SMiquel Raynal		"lane0_usb3_gbe",
756362f0a6SMiquel Raynal		"lane2_sata_usb3";
766362f0a6SMiquel Raynal		#address-cells = <1>;
776362f0a6SMiquel Raynal		#size-cells = <0>;
786362f0a6SMiquel Raynal
796362f0a6SMiquel Raynal
806362f0a6SMiquel Raynal		comphy0: phy@0 {
816362f0a6SMiquel Raynal			reg = <0>;
826362f0a6SMiquel Raynal			#phy-cells = <1>;
836362f0a6SMiquel Raynal		};
846362f0a6SMiquel Raynal
856362f0a6SMiquel Raynal		comphy1: phy@1 {
866362f0a6SMiquel Raynal			reg = <1>;
876362f0a6SMiquel Raynal			#phy-cells = <1>;
886362f0a6SMiquel Raynal		};
896362f0a6SMiquel Raynal
906362f0a6SMiquel Raynal		comphy2: phy@2 {
916362f0a6SMiquel Raynal			reg = <2>;
926362f0a6SMiquel Raynal			#phy-cells = <1>;
936362f0a6SMiquel Raynal		};
946362f0a6SMiquel Raynal	};
95