mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	phy: Add generic_{setup,shutdown}_phy() helpers
In drivers usb/host/{ehci,ohci}-generic.c, {ehci,ohci}_setup_phy() and
{ehci,ohci}_shutdown_phy() shares 95% of common code.
Factorize this code in new generic_{setup,shudown}_phy() functions.
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
			
			
This commit is contained in:
		
				
					committed by
					
						 Marek Vasut
						Marek Vasut
					
				
			
			
				
	
			
			
			
						parent
						
							7cc1af902d
						
					
				
				
					commit
					84e561407a
				
			| @@ -455,6 +455,48 @@ int generic_phy_power_off_bulk(struct phy_bulk *bulk) | |||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | int generic_setup_phy(struct udevice *dev, struct phy *phy, int index) | ||||||
|  | { | ||||||
|  | 	int ret = 0; | ||||||
|  |  | ||||||
|  | 	if (!phy) | ||||||
|  | 		return 0; | ||||||
|  |  | ||||||
|  | 	ret = generic_phy_get_by_index(dev, index, phy); | ||||||
|  | 	if (ret) { | ||||||
|  | 		if (ret != -ENOENT) | ||||||
|  | 			return ret; | ||||||
|  | 	} else { | ||||||
|  | 		ret = generic_phy_init(phy); | ||||||
|  | 		if (ret) | ||||||
|  | 			return ret; | ||||||
|  |  | ||||||
|  | 		ret = generic_phy_power_on(phy); | ||||||
|  | 		if (ret) | ||||||
|  | 			ret = generic_phy_exit(phy); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return ret; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int generic_shutdown_phy(struct phy *phy) | ||||||
|  | { | ||||||
|  | 	int ret = 0; | ||||||
|  |  | ||||||
|  | 	if (!phy) | ||||||
|  | 		return 0; | ||||||
|  |  | ||||||
|  | 	if (generic_phy_valid(phy)) { | ||||||
|  | 		ret = generic_phy_power_off(phy); | ||||||
|  | 		if (ret) | ||||||
|  | 			return ret; | ||||||
|  |  | ||||||
|  | 		ret = generic_phy_exit(phy); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return ret; | ||||||
|  | } | ||||||
|  |  | ||||||
| UCLASS_DRIVER(phy) = { | UCLASS_DRIVER(phy) = { | ||||||
| 	.id		= UCLASS_PHY, | 	.id		= UCLASS_PHY, | ||||||
| 	.name		= "phy", | 	.name		= "phy", | ||||||
|   | |||||||
| @@ -342,6 +342,26 @@ int generic_phy_power_on_bulk(struct phy_bulk *bulk); | |||||||
|  */ |  */ | ||||||
| int generic_phy_power_off_bulk(struct phy_bulk *bulk); | int generic_phy_power_off_bulk(struct phy_bulk *bulk); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * generic_setup_phy() - Get, initialize and power on phy. | ||||||
|  |  * | ||||||
|  |  * @dev:	The consumer device. | ||||||
|  |  * @phy:	A pointer to the PHY port | ||||||
|  |  * @index:	The index in the list of available PHYs | ||||||
|  |  * | ||||||
|  |  * Return: 0 if OK, or negative error code. | ||||||
|  |  */ | ||||||
|  | int generic_setup_phy(struct udevice *dev, struct phy *phy, int index); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * generic_shutdown_phy() - Power off and de-initialize phy. | ||||||
|  |  * | ||||||
|  |  * @phy:	A pointer to the PHY port. | ||||||
|  |  * | ||||||
|  |  * Return: 0 if OK, or negative error code. | ||||||
|  |  */ | ||||||
|  | int generic_shutdown_phy(struct phy *phy); | ||||||
|  |  | ||||||
| #else /* CONFIG_PHY */ | #else /* CONFIG_PHY */ | ||||||
|  |  | ||||||
| static inline int generic_phy_init(struct phy *phy) | static inline int generic_phy_init(struct phy *phy) | ||||||
| @@ -407,6 +427,16 @@ static inline int generic_phy_power_off_bulk(struct phy_bulk *bulk) | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static inline int generic_setup_phy(struct udevice *dev, struct phy *phy, int index) | ||||||
|  | { | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static inline int generic_shutdown_phy(struct phy *phy) | ||||||
|  | { | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
| #endif /* CONFIG_PHY */ | #endif /* CONFIG_PHY */ | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user