mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
[etherswitch] add ukswitch hint that is phy offset at mdio register
This patch allows to specify PHY register offset for ukswitch. For instance, switch MAICREL KS8995XA connected via MDIO to SoC, but PHY register starts at 1. So hint for this case is: hint.ukswitch.0.phyoffset=1 No change/effect if hint is not set. Submitted by: Hiroki Mori <yamori813@yahoo.co.jp> Reviewed by: adrian, mizhka Approved by: adrian(mentor) Differential Revision: https://reviews.freebsd.org/D8584
This commit is contained in:
parent
e45c936f46
commit
b15317c431
1 changed files with 5 additions and 1 deletions
|
|
@ -67,6 +67,7 @@ struct ukswitch_softc {
|
|||
int media; /* cpu port media */
|
||||
int cpuport; /* which PHY is connected to the CPU */
|
||||
int phymask; /* PHYs we manage */
|
||||
int phyoffset; /* PHYs register offset */
|
||||
int numports; /* number of ports */
|
||||
int ifpport[MII_NPHY];
|
||||
int *portphy;
|
||||
|
|
@ -133,7 +134,7 @@ ukswitch_attach_phys(struct ukswitch_softc *sc)
|
|||
M_WAITOK | M_ZERO);
|
||||
err = mii_attach(sc->sc_dev, sc->miibus[port], sc->ifp[port],
|
||||
ukswitch_ifmedia_upd, ukswitch_ifmedia_sts, \
|
||||
BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, 0);
|
||||
BMSR_DEFCAPMASK, phy + sc->phyoffset, MII_OFFSET_ANY, 0);
|
||||
DPRINTF(sc->sc_dev, "%s attached to pseudo interface %s\n",
|
||||
device_get_nameunit(*sc->miibus[port]),
|
||||
sc->ifp[port]->if_xname);
|
||||
|
|
@ -166,6 +167,7 @@ ukswitch_attach(device_t dev)
|
|||
/* XXX Defaults */
|
||||
sc->numports = 6;
|
||||
sc->phymask = 0x0f;
|
||||
sc->phyoffset = 0;
|
||||
sc->cpuport = -1;
|
||||
sc->media = 100;
|
||||
|
||||
|
|
@ -173,6 +175,8 @@ ukswitch_attach(device_t dev)
|
|||
"numports", &sc->numports);
|
||||
(void) resource_int_value(device_get_name(dev), device_get_unit(dev),
|
||||
"phymask", &sc->phymask);
|
||||
(void) resource_int_value(device_get_name(dev), device_get_unit(dev),
|
||||
"phyoffset", &sc->phyoffset);
|
||||
(void) resource_int_value(device_get_name(dev), device_get_unit(dev),
|
||||
"cpuport", &sc->cpuport);
|
||||
(void) resource_int_value(device_get_name(dev), device_get_unit(dev),
|
||||
|
|
|
|||
Loading…
Reference in a new issue