mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
net: stmmac: qcom-ethqos: move RGMII_CONFIG2_RX_PROG_SWAP
Move RGMII_CONFIG2_RX_PROG_SWAP out of the switch. 1G speed always sets this field. 100M and 10M sets it for has_emac_ge_3 devices, otherwise it is cleared. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Tested-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com> Link: https://patch.msgid.link/E1w62ne-0000000E3Ck-1Haf@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
dae1de3df3
commit
432c8a9f55
|
|
@ -437,11 +437,15 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
|
|||
rgmii_clrmask(ethqos, RGMII_CONFIG2_RSVD_CONFIG15,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
|
||||
switch (speed) {
|
||||
case SPEED_1000:
|
||||
if (speed == SPEED_1000 || ethqos->has_emac_ge_3)
|
||||
rgmii_setmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
else
|
||||
rgmii_clrmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
|
||||
switch (speed) {
|
||||
case SPEED_1000:
|
||||
/* PRG_RCLK_DLY = TCXO period * TCXO_CYCLES_CNT / 2 * RX delay ns,
|
||||
* in practice this becomes PRG_RCLK_DLY = 52 * 4 / 2 * RX delay ns
|
||||
*/
|
||||
|
|
@ -463,13 +467,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
|
|||
break;
|
||||
|
||||
case SPEED_100:
|
||||
if (ethqos->has_emac_ge_3)
|
||||
rgmii_setmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
else
|
||||
rgmii_clrmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
|
||||
/* Write 0x5 to PRG_RCLK_DLY_CODE */
|
||||
rgmii_updatel(ethqos, SDCC_DDR_CONFIG_EXT_PRG_RCLK_DLY_CODE,
|
||||
FIELD_PREP(SDCC_DDR_CONFIG_EXT_PRG_RCLK_DLY_CODE,
|
||||
|
|
@ -483,12 +480,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
|
|||
break;
|
||||
|
||||
case SPEED_10:
|
||||
if (ethqos->has_emac_ge_3)
|
||||
rgmii_setmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
else
|
||||
rgmii_clrmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
|
||||
RGMII_IO_MACRO_CONFIG2);
|
||||
/* Write 0x5 to PRG_RCLK_DLY_CODE */
|
||||
rgmii_updatel(ethqos, SDCC_DDR_CONFIG_EXT_PRG_RCLK_DLY_CODE,
|
||||
FIELD_PREP(SDCC_DDR_CONFIG_EXT_PRG_RCLK_DLY_CODE,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user