From: Rafał Miłecki <ra...@milecki.pl>

BCM4908 has only 1 RGMII reg for controlling port 7.

Fixes: 73b7a6047971 ("net: dsa: bcm_sf2: support BCM4908's integrated switch")
Signed-off-by: Rafał Miłecki <ra...@milecki.pl>
---
 drivers/net/dsa/bcm_sf2.c      | 11 +++++++----
 drivers/net/dsa/bcm_sf2_regs.h |  1 +
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 942773bcb7e0..5dc02dbb7094 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -36,7 +36,12 @@ static u16 bcm_sf2_reg_rgmii_cntrl(struct bcm_sf2_priv 
*priv, int port)
 {
        switch (priv->type) {
        case BCM4908_DEVICE_ID:
-               /* TODO */
+               switch (port) {
+               case 7:
+                       return REG_RGMII_11_CNTRL;
+               default:
+                       break;
+               }
                break;
        default:
                switch (port) {
@@ -1183,9 +1188,7 @@ static const u16 bcm_sf2_4908_reg_offsets[] = {
        [REG_PHY_REVISION]      = 0x14,
        [REG_SPHY_CNTRL]        = 0x24,
        [REG_CROSSBAR]          = 0xc8,
-       [REG_RGMII_0_CNTRL]     = 0xe0,
-       [REG_RGMII_1_CNTRL]     = 0xec,
-       [REG_RGMII_2_CNTRL]     = 0xf8,
+       [REG_RGMII_11_CNTRL]    = 0x014c,
        [REG_LED_0_CNTRL]       = 0x40,
        [REG_LED_1_CNTRL]       = 0x4c,
        [REG_LED_2_CNTRL]       = 0x58,
diff --git a/drivers/net/dsa/bcm_sf2_regs.h b/drivers/net/dsa/bcm_sf2_regs.h
index c7783cb45845..9e141d1a0b07 100644
--- a/drivers/net/dsa/bcm_sf2_regs.h
+++ b/drivers/net/dsa/bcm_sf2_regs.h
@@ -21,6 +21,7 @@ enum bcm_sf2_reg_offs {
        REG_RGMII_0_CNTRL,
        REG_RGMII_1_CNTRL,
        REG_RGMII_2_CNTRL,
+       REG_RGMII_11_CNTRL,
        REG_LED_0_CNTRL,
        REG_LED_1_CNTRL,
        REG_LED_2_CNTRL,
-- 
2.26.2

Reply via email to