mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
Merge branch 'net-stmmac-rk-simplify-per-soc-configuration'
Russell King says: ==================== net: stmmac: rk: simplify per-SoC configuration [part] ==================== Link: https://patch.msgid.link/aXdTi4ViCkhhXvFI@shell.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
62777c8015
|
|
@ -162,15 +162,17 @@ static int rk_set_clk_mac_speed(struct rk_priv_data *bsp_priv,
|
|||
((rx) ? soc##_GMAC_RXCLK_DLY_ENABLE : soc##_GMAC_RXCLK_DLY_DISABLE))
|
||||
|
||||
#define RK_GRF_MACPHY_CON0 0xb00
|
||||
#define RK_GRF_MACPHY_CON1 0xb04
|
||||
#define RK_GRF_MACPHY_CON2 0xb08
|
||||
#define RK_GRF_MACPHY_CON3 0xb0c
|
||||
|
||||
#define RK_MACPHY_ENABLE GRF_BIT(0)
|
||||
#define RK_MACPHY_DISABLE GRF_CLR_BIT(0)
|
||||
#define RK_MACPHY_CFG_CLK_50M GRF_BIT(14)
|
||||
#define RK_GMAC2PHY_RMII_MODE GRF_FIELD(7, 6, 1)
|
||||
|
||||
#define RK_GRF_MACPHY_CON1 0xb04
|
||||
|
||||
#define RK_GRF_MACPHY_CON2 0xb08
|
||||
#define RK_GRF_CON2_MACPHY_ID GRF_FIELD(15, 0, 0x1234)
|
||||
|
||||
#define RK_GRF_MACPHY_CON3 0xb0c
|
||||
#define RK_GRF_CON3_MACPHY_ID GRF_FIELD(5, 0, 0x35)
|
||||
|
||||
static void rk_gmac_integrated_ephy_powerup(struct rk_priv_data *priv)
|
||||
|
|
@ -570,8 +572,7 @@ static void rk3328_set_to_rmii(struct rk_priv_data *bsp_priv)
|
|||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = bsp_priv->integrated_phy ? RK3328_GRF_MAC_CON2 :
|
||||
RK3328_GRF_MAC_CON1;
|
||||
reg = bsp_priv->id ? RK3328_GRF_MAC_CON2 : RK3328_GRF_MAC_CON1;
|
||||
|
||||
regmap_write(bsp_priv->grf, reg,
|
||||
RK3328_GMAC_PHY_INTF_SEL(PHY_INTF_SEL_RMII) |
|
||||
|
|
@ -591,10 +592,7 @@ static int rk3328_set_speed(struct rk_priv_data *bsp_priv,
|
|||
{
|
||||
unsigned int reg;
|
||||
|
||||
if (interface == PHY_INTERFACE_MODE_RMII && bsp_priv->integrated_phy)
|
||||
reg = RK3328_GRF_MAC_CON2;
|
||||
else
|
||||
reg = RK3328_GRF_MAC_CON1;
|
||||
reg = bsp_priv->id ? RK3328_GRF_MAC_CON2 : RK3328_GRF_MAC_CON1;
|
||||
|
||||
return rk_set_reg_speed(bsp_priv, &rk3328_reg_speed_data, reg,
|
||||
interface, speed);
|
||||
|
|
@ -614,6 +612,13 @@ static const struct rk_gmac_ops rk3328_ops = {
|
|||
.set_speed = rk3328_set_speed,
|
||||
.integrated_phy_powerup = rk3328_integrated_phy_powerup,
|
||||
.integrated_phy_powerdown = rk_gmac_integrated_ephy_powerdown,
|
||||
|
||||
.regs_valid = true,
|
||||
.regs = {
|
||||
0xff540000, /* gmac2io */
|
||||
0xff550000, /* gmac2phy */
|
||||
0, /* sentinel */
|
||||
},
|
||||
};
|
||||
|
||||
#define RK3366_GRF_SOC_CON6 0x0418
|
||||
|
|
@ -1498,23 +1503,26 @@ static int gmac_clk_enable(struct rk_priv_data *bsp_priv, bool enable)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int phy_power_on(struct rk_priv_data *bsp_priv, bool enable)
|
||||
static int rk_phy_powerup(struct rk_priv_data *bsp_priv)
|
||||
{
|
||||
struct regulator *ldo = bsp_priv->regulator;
|
||||
struct device *dev = bsp_priv->dev;
|
||||
int ret;
|
||||
|
||||
if (enable) {
|
||||
ret = regulator_enable(ldo);
|
||||
if (ret)
|
||||
dev_err(dev, "fail to enable phy-supply\n");
|
||||
} else {
|
||||
ret = regulator_disable(ldo);
|
||||
if (ret)
|
||||
dev_err(dev, "fail to disable phy-supply\n");
|
||||
}
|
||||
ret = regulator_enable(ldo);
|
||||
if (ret)
|
||||
dev_err(bsp_priv->dev, "fail to enable phy-supply\n");
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void rk_phy_powerdown(struct rk_priv_data *bsp_priv)
|
||||
{
|
||||
struct regulator *ldo = bsp_priv->regulator;
|
||||
int ret;
|
||||
|
||||
ret = regulator_disable(ldo);
|
||||
if (ret)
|
||||
dev_err(bsp_priv->dev, "fail to disable phy-supply\n");
|
||||
}
|
||||
|
||||
static struct rk_priv_data *rk_gmac_setup(struct platform_device *pdev,
|
||||
|
|
@ -1692,7 +1700,7 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)
|
|||
dev_err(dev, "NO interface defined!\n");
|
||||
}
|
||||
|
||||
ret = phy_power_on(bsp_priv, true);
|
||||
ret = rk_phy_powerup(bsp_priv);
|
||||
if (ret) {
|
||||
gmac_clk_enable(bsp_priv, false);
|
||||
return ret;
|
||||
|
|
@ -1713,7 +1721,7 @@ static void rk_gmac_powerdown(struct rk_priv_data *gmac)
|
|||
|
||||
pm_runtime_put_sync(gmac->dev);
|
||||
|
||||
phy_power_on(gmac, false);
|
||||
rk_phy_powerdown(gmac);
|
||||
gmac_clk_enable(gmac, false);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user