Deleted Added
sdiff udiff text old ( 83029 ) new ( 83597 )
full compact
1/*
2 * Copyright (c) 2000
3 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 * THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * $FreeBSD: head/sys/dev/mii/brgphy.c 83029 2001-09-04 22:00:33Z wpaul $
33 */
34
35/*
36 * Driver for the Broadcom BCR5400 1000baseTX PHY. Speed is always
37 * 1000mbps; all we need to negotiate here is full or half duplex.
38 */
39
40#include <sys/param.h>

--- 13 unchanged lines hidden (view full) ---

54#include <dev/mii/miidevs.h>
55
56#include <dev/mii/brgphyreg.h>
57
58#include "miibus_if.h"
59
60#if !defined(lint)
61static const char rcsid[] =
62 "$FreeBSD: head/sys/dev/mii/brgphy.c 83029 2001-09-04 22:00:33Z wpaul $";
63#endif
64
65static int brgphy_probe __P((device_t));
66static int brgphy_attach __P((device_t));
67static int brgphy_detach __P((device_t));
68
69static device_method_t brgphy_methods[] = {
70 /* device interface */

--- 204 unchanged lines hidden (view full) ---

275 if ((mii->mii_ifp->if_flags & IFF_LINK0)) {
276 PHY_WRITE(sc, BRGPHY_MII_1000CTL,
277 BRGPHY_1000CTL_MSE|BRGPHY_1000CTL_MSC);
278 } else {
279 PHY_WRITE(sc, BRGPHY_MII_1000CTL,
280 BRGPHY_1000CTL_MSE);
281 }
282 break;
283 case IFM_100_T4:
284 default:
285 return (EINVAL);
286 }
287 break;
288
289 case MII_TICK:
290 /*

--- 111 unchanged lines hidden (view full) ---

402}
403
404
405static int
406brgphy_mii_phy_auto(mii, waitfor)
407 struct mii_softc *mii;
408 int waitfor;
409{
410 int bmsr, i;
411
412 if ((mii->mii_flags & MIIF_DOINGAUTO) == 0) {
413 PHY_WRITE(mii, BRGPHY_MII_1000CTL,
414 BRGPHY_1000CTL_AFD|BRGPHY_1000CTL_AHD);
415 PHY_WRITE(mii, BRGPHY_MII_ANAR, BRGPHY_SEL_TYPE);
416 PHY_WRITE(mii, BRGPHY_MII_BMCR,
417 BRGPHY_BMCR_AUTOEN | BRGPHY_BMCR_STARTNEG);
418 PHY_WRITE(mii, BRGPHY_MII_IMR, 0xFF00);
419 }
420
421 if (waitfor) {
422 /* Wait 500ms for it to complete. */
423 for (i = 0; i < 500; i++) {

--- 30 unchanged lines hidden ---