Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/etherswitch/e6000sw/e6060sw.c
Show First 20 Lines • Show All 163 Lines • ▼ Show 20 Lines | e6060sw_probe(device_t dev) | ||||
struct e6060sw_softc *sc; | struct e6060sw_softc *sc; | ||||
int devid, i; | int devid, i; | ||||
char *devname; | char *devname; | ||||
char desc[80]; | char desc[80]; | ||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
bzero(sc, sizeof(*sc)); | bzero(sc, sizeof(*sc)); | ||||
devid = 0; | |||||
for (i = 0; i < 2; ++i) { | for (i = 0; i < 2; ++i) { | ||||
data = MDIO_READREG(device_get_parent(dev), | data = MDIO_READREG(device_get_parent(dev), | ||||
CORE_REGISTER + i * 0x10, SWITCH_ID); | CORE_REGISTER + i * 0x10, SWITCH_ID); | ||||
if (bootverbose) | if (bootverbose) | ||||
device_printf(dev,"Switch Identifier Register %x\n", | device_printf(dev,"Switch Identifier Register %x\n", | ||||
data); | data); | ||||
devid = data >> 4; | devid = data >> 4; | ||||
if (devid == E6060 || | if (devid == E6060 || | ||||
devid == E6063 || devid == E6065) { | devid == E6063 || devid == E6065) { | ||||
sc->sw_model = devid; | sc->sw_model = devid; | ||||
sc->smi_offset = i * 0x10; | sc->smi_offset = i * 0x10; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
if (i == 2) | |||||
return (ENXIO); | |||||
if (devid == E6060) | if (devid == E6060) | ||||
devname = "88E6060"; | devname = "88E6060"; | ||||
else if (devid == E6063) | else if (devid == E6063) | ||||
devname = "88E6063"; | devname = "88E6063"; | ||||
else if (devid == E6065) | else if (devid == E6065) | ||||
devname = "88E6065"; | devname = "88E6065"; | ||||
else | |||||
return (ENXIO); | |||||
sprintf(desc, "Marvell %s MDIO switch driver at 0x%02x", | sprintf(desc, "Marvell %s MDIO switch driver at 0x%02x", | ||||
devname, sc->smi_offset); | devname, sc->smi_offset); | ||||
device_set_desc_copy(dev, desc); | device_set_desc_copy(dev, desc); | ||||
return (BUS_PROBE_DEFAULT); | return (BUS_PROBE_DEFAULT); | ||||
} | } | ||||
static int | static int | ||||
▲ Show 20 Lines • Show All 822 Lines • Show Last 20 Lines |