summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fm/init.c10
-rw-r--r--drivers/net/fm/p1023.c5
-rw-r--r--drivers/net/fm/p3060.c5
-rw-r--r--drivers/net/fm/p4080.c5
-rw-r--r--drivers/net/fm/p5020.c5
-rw-r--r--drivers/net/phy/teranetics.c2
6 files changed, 29 insertions, 3 deletions
diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c
index 512d7dd..953c359 100644
--- a/drivers/net/fm/init.c
+++ b/drivers/net/fm/init.c
@@ -183,6 +183,8 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
{
int off, ph;
phys_addr_t paddr = CONFIG_SYS_CCSRBAR_PHYS + info->compat_offset;
+ u64 dtsec1_addr = (u64)CONFIG_SYS_CCSRBAR_PHYS +
+ CONFIG_SYS_FSL_FM1_DTSEC1_OFFSET;
off = fdt_node_offset_by_compat_reg(blob, prop, paddr);
@@ -195,9 +197,13 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
/* board code might have caused offset to change */
off = fdt_node_offset_by_compat_reg(blob, prop, paddr);
- /* disable both the mac node and the node that has a handle to it */
- fdt_setprop_string(blob, off, "status", "disabled");
+ /* Don't disable FM1-DTSEC1 MAC as its used for MDIO */
+ if (paddr != dtsec1_addr) {
+ /* disable the mac node */
+ fdt_setprop_string(blob, off, "status", "disabled");
+ }
+ /* disable the node point to the mac */
ph = fdt_get_phandle(blob, off);
do_fixup_by_prop(blob, "fsl,fman-mac", &ph, sizeof(ph),
"status", "disabled", strlen("disabled") + 1, 1);
diff --git a/drivers/net/fm/p1023.c b/drivers/net/fm/p1023.c
index b17dc40..9765da5 100644
--- a/drivers/net/fm/p1023.c
+++ b/drivers/net/fm/p1023.c
@@ -39,6 +39,11 @@ static int is_device_disabled(enum fm_port port)
void fman_disable_port(enum fm_port port)
{
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+ /* don't allow disabling of DTSEC1 as its needed for MDIO */
+ if (port == FM1_DTSEC1)
+ return;
+
setbits_be32(&gur->devdisr, port_to_devdisr[port]);
}
diff --git a/drivers/net/fm/p3060.c b/drivers/net/fm/p3060.c
index 176e1d2..c9748a9 100644
--- a/drivers/net/fm/p3060.c
+++ b/drivers/net/fm/p3060.c
@@ -45,6 +45,11 @@ static int is_device_disabled(enum fm_port port)
void fman_disable_port(enum fm_port port)
{
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+ /* don't allow disabling of DTSEC1 as its needed for MDIO */
+ if (port == FM1_DTSEC1)
+ return;
+
setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
}
diff --git a/drivers/net/fm/p4080.c b/drivers/net/fm/p4080.c
index 791caab..9dc6049 100644
--- a/drivers/net/fm/p4080.c
+++ b/drivers/net/fm/p4080.c
@@ -47,6 +47,11 @@ static int is_device_disabled(enum fm_port port)
void fman_disable_port(enum fm_port port)
{
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+ /* don't allow disabling of DTSEC1 as its needed for MDIO */
+ if (port == FM1_DTSEC1)
+ return;
+
setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
}
diff --git a/drivers/net/fm/p5020.c b/drivers/net/fm/p5020.c
index 69c27d2..a7a6e43 100644
--- a/drivers/net/fm/p5020.c
+++ b/drivers/net/fm/p5020.c
@@ -43,6 +43,11 @@ static int is_device_disabled(enum fm_port port)
void fman_disable_port(enum fm_port port)
{
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+ /* don't allow disabling of DTSEC1 as its needed for MDIO */
+ if (port == FM1_DTSEC1)
+ return;
+
setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
}
diff --git a/drivers/net/phy/teranetics.c b/drivers/net/phy/teranetics.c
index 9d9397a..78447b7 100644
--- a/drivers/net/phy/teranetics.c
+++ b/drivers/net/phy/teranetics.c
@@ -95,7 +95,7 @@ int tn2020_startup(struct phy_device *phydev)
struct phy_driver tn2020_driver = {
.name = "Teranetics TN2020",
- .uid = 0x00a19410,
+ .uid = PHY_UID_TN2020,
.mask = 0xfffffff0,
.features = PHY_10G_FEATURES,
.mmds = (MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS |