18c2ecf20Sopenharmony_ciMVEBU comphy drivers
28c2ecf20Sopenharmony_ci--------------------
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciCOMPHY controllers can be found on the following Marvell MVEBU SoCs:
58c2ecf20Sopenharmony_ci* Armada 7k/8k (on the CP110)
68c2ecf20Sopenharmony_ci* Armada 3700
78c2ecf20Sopenharmony_ciIt provides a number of shared PHYs used by various interfaces (network, SATA,
88c2ecf20Sopenharmony_ciUSB, PCIe...).
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciRequired properties:
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci- compatible: should be one of:
138c2ecf20Sopenharmony_ci  * "marvell,comphy-cp110" for Armada 7k/8k
148c2ecf20Sopenharmony_ci  * "marvell,comphy-a3700" for Armada 3700
158c2ecf20Sopenharmony_ci- reg: should contain the COMPHY register(s) location(s) and length(s).
168c2ecf20Sopenharmony_ci  * 1 entry for Armada 7k/8k
178c2ecf20Sopenharmony_ci  * 4 entries for Armada 3700 along with the corresponding reg-names
188c2ecf20Sopenharmony_ci    properties, memory areas are:
198c2ecf20Sopenharmony_ci    * Generic COMPHY registers
208c2ecf20Sopenharmony_ci    * Lane 1 (PCIe/GbE)
218c2ecf20Sopenharmony_ci    * Lane 0 (USB3/GbE)
228c2ecf20Sopenharmony_ci    * Lane 2 (SATA/USB3)
238c2ecf20Sopenharmony_ci- marvell,system-controller: should contain a phandle to the system
248c2ecf20Sopenharmony_ci			     controller node (only for Armada 7k/8k)
258c2ecf20Sopenharmony_ci- #address-cells: should be 1.
268c2ecf20Sopenharmony_ci- #size-cells: should be 0.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciOptional properlties:
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci- clocks: pointers to the reference clocks for this device (CP110 only),
318c2ecf20Sopenharmony_ci          consequently: MG clock, MG Core clock, AXI clock.
328c2ecf20Sopenharmony_ci- clock-names: names of used clocks for CP110 only, must be :
338c2ecf20Sopenharmony_ci               "mg_clk", "mg_core_clk" and "axi_clk".
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciA sub-node is required for each comphy lane provided by the comphy.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciRequired properties (child nodes):
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci- reg: COMPHY lane number.
408c2ecf20Sopenharmony_ci- #phy-cells : from the generic PHY bindings, must be 1. Defines the
418c2ecf20Sopenharmony_ci               input port to use for a given comphy lane.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciExamples:
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	cpm_comphy: phy@120000 {
468c2ecf20Sopenharmony_ci		compatible = "marvell,comphy-cp110";
478c2ecf20Sopenharmony_ci		reg = <0x120000 0x6000>;
488c2ecf20Sopenharmony_ci		marvell,system-controller = <&cpm_syscon0>;
498c2ecf20Sopenharmony_ci		clocks = <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 6>,
508c2ecf20Sopenharmony_ci			 <&CP110_LABEL(clk) 1 18>;
518c2ecf20Sopenharmony_ci		clock-names = "mg_clk", "mg_core_clk", "axi_clk";
528c2ecf20Sopenharmony_ci		#address-cells = <1>;
538c2ecf20Sopenharmony_ci		#size-cells = <0>;
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci		cpm_comphy0: phy@0 {
568c2ecf20Sopenharmony_ci			reg = <0>;
578c2ecf20Sopenharmony_ci			#phy-cells = <1>;
588c2ecf20Sopenharmony_ci		};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci		cpm_comphy1: phy@1 {
618c2ecf20Sopenharmony_ci			reg = <1>;
628c2ecf20Sopenharmony_ci			#phy-cells = <1>;
638c2ecf20Sopenharmony_ci		};
648c2ecf20Sopenharmony_ci	};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	comphy: phy@18300 {
678c2ecf20Sopenharmony_ci		compatible = "marvell,comphy-a3700";
688c2ecf20Sopenharmony_ci		reg = <0x18300 0x300>,
698c2ecf20Sopenharmony_ci		<0x1F000 0x400>,
708c2ecf20Sopenharmony_ci		<0x5C000 0x400>,
718c2ecf20Sopenharmony_ci		<0xe0178 0x8>;
728c2ecf20Sopenharmony_ci		reg-names = "comphy",
738c2ecf20Sopenharmony_ci		"lane1_pcie_gbe",
748c2ecf20Sopenharmony_ci		"lane0_usb3_gbe",
758c2ecf20Sopenharmony_ci		"lane2_sata_usb3";
768c2ecf20Sopenharmony_ci		#address-cells = <1>;
778c2ecf20Sopenharmony_ci		#size-cells = <0>;
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci		comphy0: phy@0 {
818c2ecf20Sopenharmony_ci			reg = <0>;
828c2ecf20Sopenharmony_ci			#phy-cells = <1>;
838c2ecf20Sopenharmony_ci		};
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci		comphy1: phy@1 {
868c2ecf20Sopenharmony_ci			reg = <1>;
878c2ecf20Sopenharmony_ci			#phy-cells = <1>;
888c2ecf20Sopenharmony_ci		};
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci		comphy2: phy@2 {
918c2ecf20Sopenharmony_ci			reg = <2>;
928c2ecf20Sopenharmony_ci			#phy-cells = <1>;
938c2ecf20Sopenharmony_ci		};
948c2ecf20Sopenharmony_ci	};
95