mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	phy: marvell: a3700: Use comphy_mux on Armada 37xx.
Lane 0 supports SGMII1 and USB3. Lane 1 supports SGMII0 and PEX0. Lane 2 supports SATA0 and USB3. This is needed for Armada 37xx. This introduces new device tree bindings. AFAIK there is currently no driver for Armada 37xx comphy in Linux. When such a driver will be pushed into Linux, this will need to be rewritten accordingly. Signed-off-by: Marek Behun <marek.behun@nic.cz> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
		
							parent
							
								
									3282a3e75f
								
							
						
					
					
						commit
						22f418935b
					
				@ -290,8 +290,9 @@
 | 
			
		||||
				compatible = "marvell,mvebu-comphy", "marvell,comphy-armada-3700";
 | 
			
		||||
				reg = <0x18300 0x28>,
 | 
			
		||||
				      <0x1f300 0x3d000>;
 | 
			
		||||
				mux-bitcount = <1>;
 | 
			
		||||
				max-lanes = <2>;
 | 
			
		||||
				mux-bitcount = <4>;
 | 
			
		||||
				mux-lane-order = <1 0 2>;
 | 
			
		||||
				max-lanes = <3>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -13,6 +13,38 @@
 | 
			
		||||
 | 
			
		||||
DECLARE_GLOBAL_DATA_PTR;
 | 
			
		||||
 | 
			
		||||
struct comphy_mux_data a3700_comphy_mux_data[] = {
 | 
			
		||||
/* Lane 0 */
 | 
			
		||||
	{
 | 
			
		||||
		4,
 | 
			
		||||
		{
 | 
			
		||||
			{ PHY_TYPE_UNCONNECTED,	0x0 },
 | 
			
		||||
			{ PHY_TYPE_SGMII1,	0x0 },
 | 
			
		||||
			{ PHY_TYPE_USB3_HOST0,	0x1 },
 | 
			
		||||
			{ PHY_TYPE_USB3_DEVICE,	0x1 }
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
/* Lane 1 */
 | 
			
		||||
	{
 | 
			
		||||
		3,
 | 
			
		||||
		{
 | 
			
		||||
			{ PHY_TYPE_UNCONNECTED,	0x0},
 | 
			
		||||
			{ PHY_TYPE_SGMII0,	0x0},
 | 
			
		||||
			{ PHY_TYPE_PEX0,	0x1}
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
/* Lane 2 */
 | 
			
		||||
	{
 | 
			
		||||
		4,
 | 
			
		||||
		{
 | 
			
		||||
			{ PHY_TYPE_UNCONNECTED,	0x0},
 | 
			
		||||
			{ PHY_TYPE_SATA0,	0x0},
 | 
			
		||||
			{ PHY_TYPE_USB3_HOST0,	0x1},
 | 
			
		||||
			{ PHY_TYPE_USB3_DEVICE,	0x1}
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sgmii_phy_init_data_fix {
 | 
			
		||||
	u16 addr;
 | 
			
		||||
	u16 value;
 | 
			
		||||
@ -932,6 +964,10 @@ int comphy_a3700_init(struct chip_serdes_phy_config *chip_cfg,
 | 
			
		||||
 | 
			
		||||
	debug_enter();
 | 
			
		||||
 | 
			
		||||
	/* Initialize PHY mux */
 | 
			
		||||
	chip_cfg->mux_data = a3700_comphy_mux_data;
 | 
			
		||||
	comphy_mux_init(chip_cfg, serdes_map, COMPHY_SEL_ADDR);
 | 
			
		||||
 | 
			
		||||
	for (lane = 0, comphy_map = serdes_map; lane < comphy_max_count;
 | 
			
		||||
	     lane++, comphy_map++) {
 | 
			
		||||
		debug("Initialize serdes number %d\n", lane);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user