1*2306b72aSZbigniew Bodek#- 2*2306b72aSZbigniew Bodek# Copyright (c) 2015 The FreeBSD Foundation 3*2306b72aSZbigniew Bodek# 4*2306b72aSZbigniew Bodek# This software was developed by Semihalf under 5*2306b72aSZbigniew Bodek# the sponsorship of the FreeBSD Foundation. 6*2306b72aSZbigniew Bodek# 7*2306b72aSZbigniew Bodek# Redistribution and use in source and binary forms, with or without 8*2306b72aSZbigniew Bodek# modification, are permitted provided that the following conditions 9*2306b72aSZbigniew Bodek# are met: 10*2306b72aSZbigniew Bodek# 1. Redistributions of source code must retain the above copyright 11*2306b72aSZbigniew Bodek# notice, this list of conditions and the following disclaimer. 12*2306b72aSZbigniew Bodek# 2. Redistributions in binary form must reproduce the above copyright 13*2306b72aSZbigniew Bodek# notice, this list of conditions and the following disclaimer in the 14*2306b72aSZbigniew Bodek# documentation and/or other materials provided with the distribution. 15*2306b72aSZbigniew Bodek# 16*2306b72aSZbigniew Bodek# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17*2306b72aSZbigniew Bodek# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*2306b72aSZbigniew Bodek# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*2306b72aSZbigniew Bodek# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20*2306b72aSZbigniew Bodek# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*2306b72aSZbigniew Bodek# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*2306b72aSZbigniew Bodek# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*2306b72aSZbigniew Bodek# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*2306b72aSZbigniew Bodek# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*2306b72aSZbigniew Bodek# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*2306b72aSZbigniew Bodek# SUCH DAMAGE. 27*2306b72aSZbigniew Bodek# 28*2306b72aSZbigniew Bodek 29*2306b72aSZbigniew Bodek# LMAC (BGX controller) interface description 30*2306b72aSZbigniew Bodek# 31*2306b72aSZbigniew Bodek 32*2306b72aSZbigniew BodekINTERFACE lmac; 33*2306b72aSZbigniew Bodek 34*2306b72aSZbigniew BodekCODE { 35*2306b72aSZbigniew Bodek static int null_lmac_media_status(device_t dev, int lmacid, int *link, 36*2306b72aSZbigniew Bodek int *duplex, int *speed) 37*2306b72aSZbigniew Bodek { 38*2306b72aSZbigniew Bodek return (ENXIO); 39*2306b72aSZbigniew Bodek } 40*2306b72aSZbigniew Bodek 41*2306b72aSZbigniew Bodek static int null_lmac_media_change(device_t dev, int lmacid, int link, 42*2306b72aSZbigniew Bodek int duplex, int speed) 43*2306b72aSZbigniew Bodek { 44*2306b72aSZbigniew Bodek return (ENXIO); 45*2306b72aSZbigniew Bodek } 46*2306b72aSZbigniew Bodek 47*2306b72aSZbigniew Bodek static int null_lmac_phy_connect(device_t dev, int lmacid, int phy) 48*2306b72aSZbigniew Bodek { 49*2306b72aSZbigniew Bodek return (ENXIO); 50*2306b72aSZbigniew Bodek } 51*2306b72aSZbigniew Bodek 52*2306b72aSZbigniew Bodek static int null_lmac_phy_disconnect(device_t dev, int lmacid, int phy) 53*2306b72aSZbigniew Bodek { 54*2306b72aSZbigniew Bodek return (ENXIO); 55*2306b72aSZbigniew Bodek } 56*2306b72aSZbigniew Bodek}; 57*2306b72aSZbigniew Bodek 58*2306b72aSZbigniew Bodek# Get link status 59*2306b72aSZbigniew Bodek# 60*2306b72aSZbigniew Bodek# 0 : Success 61*2306b72aSZbigniew Bodek# 62*2306b72aSZbigniew BodekMETHOD int media_status { 63*2306b72aSZbigniew Bodek device_t dev; 64*2306b72aSZbigniew Bodek int lmacid; 65*2306b72aSZbigniew Bodek int * link; 66*2306b72aSZbigniew Bodek int * duplex; 67*2306b72aSZbigniew Bodek int * speed; 68*2306b72aSZbigniew Bodek} DEFAULT null_lmac_media_status; 69*2306b72aSZbigniew Bodek 70*2306b72aSZbigniew Bodek# Change link status 71*2306b72aSZbigniew Bodek# 72*2306b72aSZbigniew Bodek# 0 : Success 73*2306b72aSZbigniew Bodek# 74*2306b72aSZbigniew BodekMETHOD int media_change { 75*2306b72aSZbigniew Bodek device_t dev; 76*2306b72aSZbigniew Bodek int lmacid; 77*2306b72aSZbigniew Bodek int link; 78*2306b72aSZbigniew Bodek int duplex; 79*2306b72aSZbigniew Bodek int speed; 80*2306b72aSZbigniew Bodek} DEFAULT null_lmac_media_change; 81*2306b72aSZbigniew Bodek 82*2306b72aSZbigniew Bodek# Connect PHY 83*2306b72aSZbigniew Bodek# 84*2306b72aSZbigniew Bodek# 0 : Success 85*2306b72aSZbigniew Bodek# 86*2306b72aSZbigniew BodekMETHOD int phy_connect { 87*2306b72aSZbigniew Bodek device_t dev; 88*2306b72aSZbigniew Bodek int lmacid; 89*2306b72aSZbigniew Bodek int phy; 90*2306b72aSZbigniew Bodek} DEFAULT null_lmac_phy_connect; 91*2306b72aSZbigniew Bodek 92*2306b72aSZbigniew Bodek# Disconnect PHY 93*2306b72aSZbigniew Bodek# 94*2306b72aSZbigniew Bodek# 0 : Success 95*2306b72aSZbigniew Bodek# 96*2306b72aSZbigniew BodekMETHOD int phy_disconnect { 97*2306b72aSZbigniew Bodek device_t dev; 98*2306b72aSZbigniew Bodek int lmacid; 99*2306b72aSZbigniew Bodek int phy; 100*2306b72aSZbigniew Bodek} DEFAULT null_lmac_phy_disconnect; 101