--- /dev/null
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
+@@ -79,6 +79,9 @@ struct bcm63xx_enetsw_port {
+ int force_speed;
+ int force_duplex_full;
+
++ int mii_override;
++ int timing_sel;
++
+ const char *name;
+ };
+
+--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
++++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+@@ -2209,6 +2209,10 @@ static int bcm_enetsw_open(struct net_de
+
+ rgmii_ctrl = enetsw_readb(priv, ENETSW_RGMII_CTRL_REG(i));
+ rgmii_ctrl |= ENETSW_RGMII_CTRL_GMII_CLK_EN;
++ if (priv->used_ports[i].mii_override)
++ rgmii_ctrl |= ENETSW_RGMII_CTRL_MII_OVERRIDE_EN;
++ if (priv->used_ports[i].timing_sel)
++ rgmii_ctrl |= ENETSW_RGMII_CTRL_TIMING_SEL_EN;
+ enetsw_writeb(priv, rgmii_ctrl, ENETSW_RGMII_CTRL_REG(i));
+ }
+
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1610,6 +1610,51 @@ static struct board_info __initdata boar
+@@ -1610,6 +1610,53 @@ static struct board_info __initdata boar
},
},
};
+ .used = 1,
+ .phy_id = 7,
+ .name = "WAN",
++ .mii_override = 1,
++ .timing_sel = 1,
+ },
+ },
+ },
#endif /* CONFIG_BCM63XX_CPU_63268 */
/*
-@@ -1696,6 +1741,7 @@ static const struct board_info __initcon
+@@ -1696,6 +1743,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963269bhr,
#endif
};
-@@ -1786,6 +1832,7 @@ static struct of_device_id const bcm963x
+@@ -1786,6 +1834,7 @@ static struct of_device_id const bcm963x
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
{ .compatible = "brcm,bcm963269bhr", .data = &board_963269bhr, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1572,6 +1572,64 @@ static struct board_info __initdata boar
+@@ -1572,6 +1572,72 @@ static struct board_info __initdata boar
* known 63268/63269 boards
*/
#ifdef CONFIG_BCM63XX_CPU_63268
+ .used = 1,
+ .phy_id = 0,
+ .name = "GbE3",
++ .mii_override = 1,
++ .timing_sel = 1,
+ },
+
+ [5] = {
+ .used = 1,
+ .phy_id = 1,
+ .name = "GbE1",
++ .mii_override = 1,
++ .timing_sel = 1,
+ },
+
+ [6] = {
+ .used = 1,
+ .phy_id = 24,
+ .name = "GbE4",
++ .mii_override = 1,
++ .timing_sel = 1,
+ },
+
+ [7] = {
+ .used = 1,
+ .phy_id = 25,
+ .name = "GbE5",
++ .mii_override = 1,
++ .timing_sel = 1,
+ },
+ },
+ },
static struct board_info __initdata board_963269bhr = {
.name = "963269BHR",
.expected_cpu_id = 0x63268,
-@@ -1740,6 +1798,7 @@ static const struct board_info __initcon
+@@ -1742,6 +1808,7 @@ static const struct board_info __initcon
&board_96368mvngr,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963269bhr,
&board_vw6339gu,
#endif
-@@ -1831,6 +1890,7 @@ static struct of_device_id const bcm963x
+@@ -1833,6 +1900,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -1796,6 +1839,7 @@ static const struct board_info __initcon
+@@ -1806,6 +1849,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963268bu_p300,
-@@ -1888,6 +1932,7 @@ static struct of_device_id const bcm963x
+@@ -1898,6 +1942,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6368
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
static struct sprom_fixup __initdata wap5813n_fixups[] = {
{ .offset = 97, .value = 0xfeed },
{ .offset = 98, .value = 0x15d1 },
-@@ -1839,6 +1892,7 @@ static const struct board_info __initcon
+@@ -1849,6 +1902,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -1932,6 +1986,7 @@ static struct of_device_id const bcm963x
+@@ -1942,6 +1996,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6368
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
static struct sprom_fixup __initdata wap5813n_fixups[] = {
{ .offset = 97, .value = 0xfeed },
{ .offset = 98, .value = 0x15d1 },
-@@ -1893,6 +1946,7 @@ static const struct board_info __initcon
+@@ -1903,6 +1956,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -1987,6 +2041,7 @@ static struct of_device_id const bcm963x
+@@ -1997,6 +2051,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
-@@ -1945,6 +1987,7 @@ static const struct board_info __initcon
+@@ -1955,6 +1997,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
&board_VR3025un,
&board_WAP5813n,
-@@ -2043,6 +2086,7 @@ static struct of_device_id const bcm963x
+@@ -2053,6 +2096,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
-@@ -1971,6 +2001,7 @@ static const struct board_info __initcon
+@@ -1981,6 +2011,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_ct6373_1,
&board_HW553,
&board_HW556_A,
&board_HW556_B,
-@@ -2063,6 +2094,7 @@ static struct of_device_id const bcm963x
+@@ -2073,6 +2104,7 @@ static struct of_device_id const bcm963x
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
{ .compatible = "d-link,dva-g3810bn-tl", .data = &board_DVAG3810BN, },
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.expected_cpu_id = 0x6328,
-@@ -1952,6 +1995,7 @@ static const struct board_info __initcon
+@@ -1962,6 +2005,7 @@ static const struct board_info __initcon
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
&board_A4001N1,
&board_dsl_274xb_f1,
&board_FAST2704V2,
-@@ -2040,6 +2084,7 @@ static struct of_device_id const bcm963x
+@@ -2050,6 +2094,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96318ref-p300", .data = &board_96318ref_p300, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -1989,6 +2057,7 @@ static const struct board_info __initcon
+@@ -1999,6 +2067,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
-@@ -2082,6 +2151,7 @@ static struct of_device_id const bcm963x
+@@ -2092,6 +2161,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref-p300", .data = &board_96318ref_p300, },
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2131,6 +2155,7 @@ static const struct board_info __initcon
+@@ -2141,6 +2165,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
-@@ -2233,6 +2258,7 @@ static struct of_device_id const bcm963x
+@@ -2243,6 +2268,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
static struct board_info __initdata board_HW520 = {
.name = "HW6358GW_B",
.expected_cpu_id = 0x6358,
-@@ -2138,6 +2163,7 @@ static const struct board_info __initcon
+@@ -2148,6 +2173,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_ct6373_1,
&board_HW520,
&board_HW553,
&board_HW556_A,
-@@ -2247,6 +2273,7 @@ static struct of_device_id const bcm963x
+@@ -2257,6 +2283,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
{ .compatible = "t-com,speedport-w-303v", .data = &board_spw303v, },
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2182,6 +2228,7 @@ static const struct board_info __initcon
+@@ -2192,6 +2238,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
-@@ -2285,6 +2332,7 @@ static struct of_device_id const bcm963x
+@@ -2295,6 +2342,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -2153,6 +2192,7 @@ static const struct board_info __initcon
+@@ -2163,6 +2202,7 @@ static const struct board_info __initcon
&board_96318ref,
&board_96318ref_p300,
&board_dsl_2751b_d1,
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
-@@ -2250,6 +2290,7 @@ static struct of_device_id const bcm963x
+@@ -2260,6 +2300,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref-p300", .data = &board_96318ref_p300, },
{ .compatible = "d-link,dsl-275xb-d1", .data = &board_dsl_2751b_d1, },
static struct sprom_fixup __initdata wap5813n_fixups[] = {
{ .offset = 97, .value = 0xfeed },
{ .offset = 98, .value = 0x15d1 },
-@@ -2272,6 +2325,7 @@ static const struct board_info __initcon
+@@ -2282,6 +2335,7 @@ static const struct board_info __initcon
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -2372,6 +2426,7 @@ static struct of_device_id const bcm963x
+@@ -2382,6 +2436,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2256,6 +2300,7 @@ static const struct board_info __initcon
+@@ -2266,6 +2310,7 @@ static const struct board_info __initcon
&board_A4001N1,
&board_dsl_274xb_f1,
&board_FAST2704V2,
#endif
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
-@@ -2354,6 +2399,7 @@ static struct of_device_id const bcm963x
+@@ -2364,6 +2409,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, },
{ .compatible = "comtrend,ar-5387un", .data = &board_AR5387un, },
{ .compatible = "d-link,dsl-274xb-f1", .data = &board_dsl_274xb_f1, },
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2366,6 +2412,7 @@ static const struct board_info __initcon
+@@ -2376,6 +2422,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_HG655b,
&board_P870HW51A_V2,
&board_VR3025u,
-@@ -2474,6 +2521,7 @@ static struct of_device_id const bcm963x
+@@ -2484,6 +2531,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
static struct board_info __initdata board_HG655b = {
.name = "HW65x",
.expected_cpu_id = 0x6368,
-@@ -2412,6 +2448,7 @@ static const struct board_info __initcon
+@@ -2422,6 +2458,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
-@@ -2524,6 +2561,7 @@ static struct of_device_id const bcm963x
+@@ -2534,6 +2571,7 @@ static struct of_device_id const bcm963x
{ .compatible = "huawei,echolife-hg622", .data = &board_HG622, },
{ .compatible = "huawei,echolife-hg655b", .data = &board_HG655b, },
{ .compatible = "netgear,dgnd3700-v1", .data = &board_DGND3700v1_3800B, },
static struct board_info __initdata board_96368mvwg = {
.name = "96368MVWG",
.expected_cpu_id = 0x6368,
-@@ -2445,6 +2490,7 @@ static const struct board_info __initcon
+@@ -2455,6 +2500,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
-@@ -2552,6 +2598,7 @@ static struct of_device_id const bcm963x
+@@ -2562,6 +2608,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
static struct sprom_fixup __initdata wap5813n_fixups[] = {
{ .offset = 97, .value = 0xfeed },
{ .offset = 98, .value = 0x15d1 },
-@@ -2498,6 +2598,7 @@ static const struct board_info __initcon
+@@ -2508,6 +2608,7 @@ static const struct board_info __initcon
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
&board_VR3026e,
-@@ -2609,6 +2710,7 @@ static struct of_device_id const bcm963x
+@@ -2619,6 +2720,7 @@ static struct of_device_id const bcm963x
{ .compatible = "huawei,echolife-hg655b", .data = &board_HG655b, },
{ .compatible = "netgear,dgnd3700-v1", .data = &board_DGND3700v1_3800B, },
{ .compatible = "netgear,evg2000", .data = &board_EVG2000, },
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
-@@ -2598,6 +2621,7 @@ static const struct board_info __initcon
+@@ -2608,6 +2631,7 @@ static const struct board_info __initcon
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
&board_VH4032N,
&board_VR3025u,
&board_VR3025un,
-@@ -2699,6 +2723,7 @@ static struct of_device_id const bcm963x
+@@ -2709,6 +2733,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
static struct sprom_fixup __initdata dsl2751b_e1_fixups[] = {
{ .offset = 96, .value = 0x2046 },
{ .offset = 97, .value = 0xfe9d },
-@@ -2538,6 +2599,7 @@ static const struct board_info __initcon
+@@ -2548,6 +2609,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
&board_dsl_2751b_d1,
&board_FAST2704N,
#endif
-@@ -2643,6 +2705,7 @@ static struct of_device_id const bcm963x
+@@ -2653,6 +2715,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref-p300", .data = &board_96318ref_p300, },
static struct sprom_fixup __initdata ar5381u_fixups[] = {
{ .offset = 97, .value = 0xfee5 },
{ .offset = 98, .value = 0x157c },
-@@ -2605,6 +2672,7 @@ static const struct board_info __initcon
+@@ -2615,6 +2682,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
-@@ -2719,6 +2787,8 @@ static struct of_device_id const bcm963x
+@@ -2729,6 +2797,8 @@ static struct of_device_id const bcm963x
{ .compatible = "d-link,dsl-274xb-f1", .data = &board_dsl_274xb_f1, },
{ .compatible = "nucom,r5010un-v2", .data = &board_R5010UNV2, },
{ .compatible = "sagem,fast-2704-v2", .data = &board_FAST2704V2, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2654,6 +2654,49 @@ static struct board_info __initdata boar
+@@ -2664,6 +2664,49 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_63268 */
/*
-@@ -2762,6 +2805,7 @@ static const struct board_info __initcon
+@@ -2772,6 +2815,7 @@ static const struct board_info __initcon
&board_963268bu_p300,
&board_963269bhr,
&board_vw6339gu,
#endif
};
-@@ -2875,6 +2919,7 @@ static struct of_device_id const bcm963x
+@@ -2885,6 +2929,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm963268bu-p300", .data = &board_963268bu_p300, },
{ .compatible = "brcm,bcm963269bhr", .data = &board_963269bhr, },
{ .compatible = "inteno,vg50", .data = &board_vw6339gu, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2610,6 +2610,44 @@ static struct board_info __initdata boar
+@@ -2618,6 +2618,44 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_vw6339gu = {
.name = "VW6339GU",
.expected_cpu_id = 0x63268,
-@@ -2804,6 +2842,7 @@ static const struct board_info __initcon
+@@ -2814,6 +2852,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963268bu_p300,
&board_963269bhr,
&board_vw6339gu,
&board_BSKYB_63168,
#endif
-@@ -2918,6 +2957,7 @@ static struct of_device_id const bcm963x
+@@ -2928,6 +2967,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_63268
{ .compatible = "brcm,bcm963268bu-p300", .data = &board_963268bu_p300, },
{ .compatible = "brcm,bcm963269bhr", .data = &board_963269bhr, },
static struct board_info __initdata board_fast2504n = {
.name = "F@ST2504n",
.expected_cpu_id = 0x6362,
-@@ -2820,6 +2845,7 @@ static const struct board_info __initcon
+@@ -2830,6 +2855,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6362
&board_nb6,
&board_fast2504n,
#endif
-@@ -2935,6 +2961,7 @@ static struct of_device_id const bcm963x
+@@ -2945,6 +2971,7 @@ static struct of_device_id const bcm963x
{ .compatible = "bt,home-hub-2-a", .data = &board_homehub2a, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6362
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2635,6 +2635,29 @@ static struct board_info __initdata boar
+@@ -2643,6 +2643,31 @@ static struct board_info __initdata boar
},
};
+ .bypass_link = 1,
+ .force_speed = 1000,
+ .force_duplex_full = 1,
++ .mii_override = 1,
++ .timing_sel = 1,
+ .name = "RGMII",
+ },
+ },
static struct board_info __initdata board_VR3032u = {
.name = "963168M-1841N1",
.expected_cpu_id = 0x63268,
-@@ -2868,6 +2891,7 @@ static const struct board_info __initcon
+@@ -2878,6 +2903,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963268bu_p300,
&board_963269bhr,
&board_VR3032u,
&board_vw6339gu,
&board_BSKYB_63168,
-@@ -2984,6 +3008,7 @@ static struct of_device_id const bcm963x
+@@ -2994,6 +3020,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_63268
{ .compatible = "brcm,bcm963268bu-p300", .data = &board_963268bu_p300, },
{ .compatible = "brcm,bcm963269bhr", .data = &board_963269bhr, },
+++ /dev/null
---- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -2209,6 +2209,10 @@ static int bcm_enetsw_open(struct net_de
-
- rgmii_ctrl = enetsw_readb(priv, ENETSW_RGMII_CTRL_REG(i));
- rgmii_ctrl |= ENETSW_RGMII_CTRL_GMII_CLK_EN;
-+ if (BCMCPU_IS_63268()) {
-+ rgmii_ctrl |= ENETSW_RGMII_CTRL_TIMING_SEL_EN;
-+ rgmii_ctrl |= ENETSW_RGMII_CTRL_MII_OVERRIDE_EN;
-+ }
- enetsw_writeb(priv, rgmii_ctrl, ENETSW_RGMII_CTRL_REG(i));
- }
-