mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
arm64: imx8mp: Drop EQoS GPR[1] board workaround
The EQoS interface mode is now configured in common board_interface_eth_init() and called by EQoS MAC driver when appropriate. Drop the board side duplicates if the same functionality. Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
parent
c7ea9612df
commit
599474120a
9 changed files with 1 additions and 157 deletions
|
@ -276,5 +276,4 @@ int set_clk_qspi(void);
|
|||
void enable_ocotp_clk(unsigned char enable);
|
||||
int enable_i2c_clk(unsigned char enable, unsigned int i2c_num);
|
||||
int set_clk_enet(enum enet_freq type);
|
||||
int set_clk_eqos(enum enet_freq type);
|
||||
void hab_caam_clock_enable(unsigned char enable);
|
||||
|
|
|
@ -827,53 +827,6 @@ u32 mxc_get_clock(enum mxc_clock clk)
|
|||
}
|
||||
|
||||
#if defined(CONFIG_IMX8MP) && defined(CONFIG_DWC_ETH_QOS)
|
||||
int set_clk_eqos(enum enet_freq type)
|
||||
{
|
||||
u32 target;
|
||||
u32 enet1_ref;
|
||||
|
||||
switch (type) {
|
||||
case ENET_125MHZ:
|
||||
enet1_ref = ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_125M_CLK;
|
||||
break;
|
||||
case ENET_50MHZ:
|
||||
enet1_ref = ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_50M_CLK;
|
||||
break;
|
||||
case ENET_25MHZ:
|
||||
enet1_ref = ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_25M_CLK;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* disable the clock first */
|
||||
clock_enable(CCGR_QOS_ETHENET, 0);
|
||||
clock_enable(CCGR_SDMA2, 0);
|
||||
|
||||
/* set enet axi clock 266Mhz */
|
||||
target = CLK_ROOT_ON | ENET_AXI_CLK_ROOT_FROM_SYS1_PLL_266M |
|
||||
CLK_ROOT_PRE_DIV(CLK_ROOT_PRE_DIV1) |
|
||||
CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV1);
|
||||
clock_set_target_val(ENET_AXI_CLK_ROOT, target);
|
||||
|
||||
target = CLK_ROOT_ON | enet1_ref |
|
||||
CLK_ROOT_PRE_DIV(CLK_ROOT_PRE_DIV1) |
|
||||
CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV1);
|
||||
clock_set_target_val(ENET_QOS_CLK_ROOT, target);
|
||||
|
||||
target = CLK_ROOT_ON |
|
||||
ENET1_TIME_CLK_ROOT_FROM_PLL_ENET_MAIN_100M_CLK |
|
||||
CLK_ROOT_PRE_DIV(CLK_ROOT_PRE_DIV1) |
|
||||
CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV4);
|
||||
clock_set_target_val(ENET_QOS_TIMER_CLK_ROOT, target);
|
||||
|
||||
/* enable clock */
|
||||
clock_enable(CCGR_QOS_ETHENET, 1);
|
||||
clock_enable(CCGR_SDMA2, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int imx8mp_eqos_interface_init(struct udevice *dev,
|
||||
phy_interface_t interface_type)
|
||||
{
|
||||
|
|
|
@ -113,7 +113,7 @@ static const iomux_v3_cfg_t eqos_rst_pads[] = {
|
|||
MX8MP_PAD_SAI2_RXC__GPIO4_IO22 | MUX_PAD_CTRL(NO_PAD_CTRL),
|
||||
};
|
||||
|
||||
static void setup_iomux_eqos(void)
|
||||
static void setup_eqos(void)
|
||||
{
|
||||
imx_iomux_v3_setup_multiple_pads(eqos_rst_pads,
|
||||
ARRAY_SIZE(eqos_rst_pads));
|
||||
|
@ -124,21 +124,6 @@ static void setup_iomux_eqos(void)
|
|||
gpio_direction_output(EQOS_RST_PAD, 1);
|
||||
mdelay(100);
|
||||
}
|
||||
|
||||
static int setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
setup_iomux_eqos();
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
#endif /* CONFIG_DWC_ETH_QOS */
|
||||
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
|
|
|
@ -41,19 +41,6 @@ int board_phys_sdram_size(phys_size_t *size)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* Set INTF as RGMII, enable RGMII TXC clock. */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
static void setup_fec(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
|
@ -131,7 +118,6 @@ int dh_setup_mac_address(void)
|
|||
|
||||
int board_init(void)
|
||||
{
|
||||
setup_eqos();
|
||||
setup_fec();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -34,19 +34,6 @@ static void setup_fec(void)
|
|||
setbits_le32(&gpr->gpr[1], BIT(22));
|
||||
}
|
||||
|
||||
static int setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(NET)
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
|
@ -61,9 +48,6 @@ int board_init(void)
|
|||
if (IS_ENABLED(CONFIG_FEC_MXC))
|
||||
setup_fec();
|
||||
|
||||
if (IS_ENABLED(CONFIG_DWC_ETH_QOS))
|
||||
setup_eqos();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,19 +29,6 @@ static void setup_fec(void)
|
|||
setbits_le32(&gpr->gpr[1], BIT(22));
|
||||
}
|
||||
|
||||
static int setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(NET)
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
|
@ -59,10 +46,6 @@ int board_init(void)
|
|||
setup_fec();
|
||||
}
|
||||
|
||||
if (IS_ENABLED(CONFIG_DWC_ETH_QOS)) {
|
||||
ret = setup_eqos();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,19 +57,6 @@ static int __maybe_unused setup_fec(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __maybe_unused setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
#if (IS_ENABLED(CONFIG_NET))
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
|
@ -99,8 +86,6 @@ int board_init(void)
|
|||
|
||||
if (IS_ENABLED(CONFIG_FEC_MXC))
|
||||
setup_fec();
|
||||
if (IS_ENABLED(CONFIG_DWC_ETH_QOS))
|
||||
setup_eqos();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -30,19 +30,6 @@ static void setup_fec(void)
|
|||
setbits_le32(&gpr->gpr[1], BIT(22));
|
||||
}
|
||||
|
||||
static int setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
if (phydev->drv->config)
|
||||
|
@ -54,7 +41,5 @@ int board_init(void)
|
|||
{
|
||||
setup_fec();
|
||||
|
||||
setup_eqos();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -49,19 +49,6 @@ static void setup_fec(void)
|
|||
setbits_le32(&gpr->gpr[1], BIT(22));
|
||||
}
|
||||
|
||||
static int setup_eqos(void)
|
||||
{
|
||||
struct iomuxc_gpr_base_regs *gpr =
|
||||
(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
|
||||
|
||||
/* set INTF as RGMII, enable RGMII TXC clock */
|
||||
clrsetbits_le32(&gpr->gpr[1],
|
||||
IOMUXC_GPR_GPR1_GPR_ENET_QOS_INTF_SEL_MASK, BIT(16));
|
||||
setbits_le32(&gpr->gpr[1], BIT(19) | BIT(21));
|
||||
|
||||
return set_clk_eqos(ENET_125MHZ);
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_NET)
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
|
@ -78,9 +65,6 @@ int board_init(void)
|
|||
if (IS_ENABLED(CONFIG_FEC_MXC))
|
||||
setup_fec();
|
||||
|
||||
if (IS_ENABLED(CONFIG_DWC_ETH_QOS))
|
||||
ret = setup_eqos();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue