Пример #1
0
static int
micphy_attach(device_t dev)
{
	struct mii_softc *sc;
	phandle_t node;
	device_t miibus;
	device_t parent;

	sc = device_get_softc(dev);

	mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &micphy_funcs, 1);
	mii_phy_setmedia(sc);

	miibus = device_get_parent(dev);
	parent = device_get_parent(miibus);

	if ((node = ofw_bus_get_node(parent)) == -1)
		return (ENXIO);

	ksz9021_load_values(sc, node, MII_KSZPHY_CLK_CONTROL_PAD_SKEW,
			"txen-skew-ps", "txc-skew-ps",
			"rxdv-skew-ps", "rxc-skew-ps");

	ksz9021_load_values(sc, node, MII_KSZPHY_RX_DATA_PAD_SKEW,
			"rxd0-skew-ps", "rxd1-skew-ps",
			"rxd2-skew-ps", "rxd3-skew-ps");

	ksz9021_load_values(sc, node, MII_KSZPHY_TX_DATA_PAD_SKEW,
			"txd0-skew-ps", "txd1-skew-ps",
			"txd2-skew-ps", "txd3-skew-ps");

	return (0);
}
Пример #2
0
static int
micphy_attach(device_t dev)
{
	struct mii_softc *sc;
	phandle_t node;
	device_t miibus;
	device_t parent;

	sc = device_get_softc(dev);

	mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &micphy_funcs, 1);
	mii_phy_setmedia(sc);

	/* Nothing further to configure for 8081 model. */
	if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ8081)
		return (0);

	miibus = device_get_parent(dev);
	parent = device_get_parent(miibus);

	if ((node = ofw_bus_get_node(parent)) == -1)
		return (ENXIO);

	if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ9031)
		ksz9031_load_values(sc, node);
	else
		ksz9021_load_values(sc, node);

	return (0);
}