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