mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01: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:
		
				
					committed by
					
						 Stefan Roese
						Stefan Roese
					
				
			
			
				
	
			
			
			
						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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user