brcm63xx: fix number of switch ports for BCM63168/63268

BCM63168 has 6 ports (3 FE PHY, 1 GE PHY, two RGMII) and BCM63268
has two additional RGMII ports, making it 8.
Fix this by checking the chip variant and applying an appropriate
limit.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39677 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Jonas Gorski 2014-02-22 11:16:44 +00:00
parent 61188a63b3
commit 2cb2948110
2 changed files with 10 additions and 6 deletions

View File

@ -744,11 +744,15 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
return -ENODEV;
ret = register_shared();
@@ -297,6 +299,8 @@ bcm63xx_enetsw_register(const struct bcm
@@ -295,8 +297,11 @@ bcm63xx_enetsw_register(const struct bcm
if (BCMCPU_IS_6328())
enetsw_pd.num_ports = ENETSW_PORTS_6328;
else if (BCMCPU_IS_6362() || BCMCPU_IS_6368())
- else if (BCMCPU_IS_6362() || BCMCPU_IS_6368())
+ else if (BCMCPU_IS_6362() || BCMCPU_IS_6368() ||
+ BCMCPU_VARIANT_IS_63168() || BCMCPU_VARIANT_IS_63169())
enetsw_pd.num_ports = ENETSW_PORTS_6368;
+ else if (BCMCPU_IS_63268())
+ else if (BCMCPU_VARIANT_IS_63268() || BCMCPU_VARIANT_IS_63269())
+ enetsw_pd.num_ports = ENETSW_PORTS_63268;
enetsw_pd.dma_has_sram = true;
@ -759,7 +763,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#define ENETSW_MAX_PORT 8
#define ENETSW_PORTS_6328 5 /* 4 FE PHY + 1 RGMII */
#define ENETSW_PORTS_6368 6 /* 4 FE PHY + 2 RGMII */
+#define ENETSW_PORTS_63268 4 /* 3 FE PHY + 1 RGMII */
+#define ENETSW_PORTS_63268 8 /* 3 FE PHY + 1 GE PHY + 4 RGMII */
#define ENETSW_RGMII_PORT0 4

View File

@ -644,8 +644,8 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
- if (BCMCPU_IS_6328())
+ if (BCMCPU_IS_6318() || BCMCPU_IS_6328())
enetsw_pd.num_ports = ENETSW_PORTS_6328;
else if (BCMCPU_IS_6362() || BCMCPU_IS_6368())
enetsw_pd.num_ports = ENETSW_PORTS_6368;
else if (BCMCPU_IS_6362() || BCMCPU_IS_6368() ||
BCMCPU_VARIANT_IS_63168() || BCMCPU_VARIANT_IS_63169())
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
@@ -9,6 +9,8 @@ int __init bcm63xx_gpio_init(void);