mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
phy: rockchip: naneng-combphy: Add phy_validate support
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Change-Id: Icc2587edadcb37be0bac41c2128391f7583bc3ff
This commit is contained in:
@@ -287,9 +287,42 @@ static int rockchip_combphy_exit(struct phy *phy)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *rockchip_combphy_mode2str(enum phy_mode mode)
|
||||
{
|
||||
switch (mode) {
|
||||
case PHY_TYPE_SATA:
|
||||
return "SATA";
|
||||
case PHY_TYPE_PCIE:
|
||||
return "PCIe";
|
||||
case PHY_TYPE_USB3:
|
||||
return "USB3";
|
||||
case PHY_TYPE_SGMII:
|
||||
case PHY_TYPE_QSGMII:
|
||||
return "GMII";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
static int rockchip_combphy_validate(struct phy *phy, enum phy_mode mode, int submode,
|
||||
union phy_configure_opts *opts)
|
||||
{
|
||||
struct rockchip_combphy_priv *priv = phy_get_drvdata(phy);
|
||||
|
||||
if (mode != priv->mode) {
|
||||
dev_err(priv->dev, "expected mode is %s, but current mode is %s\n",
|
||||
rockchip_combphy_mode2str(mode),
|
||||
rockchip_combphy_mode2str(priv->mode));
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct phy_ops rochchip_combphy_ops = {
|
||||
.init = rockchip_combphy_init,
|
||||
.exit = rockchip_combphy_exit,
|
||||
.validate = rockchip_combphy_validate,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user