generic-phy: add configure op

Add the PHY configure op callback to the generic PHY uclass to permit
configuring the PHY.

It's useful for MIPI DSI PHYs to setup the link timings.

Signed-off-by:Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
This commit is contained in:
Neil Armstrong 2020-12-29 14:58:59 +01:00
parent afef20585a
commit f8da8a82c5
2 changed files with 34 additions and 0 deletions

View file

@ -204,6 +204,17 @@ int generic_phy_power_off(struct phy *phy)
return ret;
}
int generic_phy_configure(struct phy *phy, void *params)
{
struct phy_ops const *ops;
if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);
return ops->configure ? ops->configure(phy, params) : 0;
}
int generic_phy_get_bulk(struct udevice *dev, struct phy_bulk *bulk)
{
int i, ret, count;

View file

@ -122,6 +122,20 @@ struct phy_ops {
* @return 0 if OK, or a negative error code
*/
int (*power_off)(struct phy *phy);
/**
* configure - configure a PHY device
*
* @phy: PHY port to be configured
* @params: PHY Parameters, underlying data is specific to the PHY function
*
* During runtime, the PHY may need to be configured for it's main function.
* This function configures the PHY for it's main function following
* power_on/off() after beeing initialized.
*
* @return 0 if OK, or a negative error code
*/
int (*configure)(struct phy *phy, void *params);
};
/**
@ -183,6 +197,15 @@ int generic_phy_power_on(struct phy *phy);
*/
int generic_phy_power_off(struct phy *phy);
/**
* generic_phy_configure() - configure a PHY device
*
* @phy: PHY port to be configured
* @params: PHY Parameters, underlying data is specific to the PHY function
* @return 0 if OK, or a negative error code
*/
int generic_phy_configure(struct phy *phy, void *params);
/**
* generic_phy_get_by_index() - Get a PHY device by integer index.