1#- 2# Copyright (c) 2015 Luiz Otavio O Souza <loos@FreeBSD.org> 3# Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com> 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# 27# 28 29INTERFACE if_dwc; 30 31#include <dev/dwc/if_dwc.h> 32 33CODE { 34 static int 35 if_dwc_default_init(device_t dev) 36 { 37 return (0); 38 } 39 40 static int 41 if_dwc_default_mac_type(device_t dev) 42 { 43 return (DWC_GMAC_EXT_DESC); 44 } 45 46 static int 47 if_dwc_default_mii_clk(device_t dev) 48 { 49 return (GMAC_MII_CLK_25_35M_DIV16); 50 } 51 52 static int 53 if_dwc_default_set_speed(device_t dev, int speed) 54 { 55 return (0); 56 } 57}; 58 59HEADER { 60}; 61 62# 63# Initialize the SoC specific registers. 64# 65METHOD int init { 66 device_t dev; 67} DEFAULT if_dwc_default_init; 68 69# 70# Return the DWC MAC type (descriptor type). 71# 72METHOD int mac_type { 73 device_t dev; 74} DEFAULT if_dwc_default_mac_type; 75 76# 77# Return the DWC MII clock for a specific hardware. 78# 79METHOD int mii_clk { 80 device_t dev; 81} DEFAULT if_dwc_default_mii_clk; 82 83# 84# Signal media change to a specific hardware 85# 86METHOD int set_speed { 87 device_t dev; 88 int speed; 89} DEFAULT if_dwc_default_set_speed; 90