xref: /freebsd/sys/dev/dwc/if_dwc_if.m (revision 824cfb472932d2a4c27c601170ec5bd44327aa22)
15df53927SLuiz Otavio O Souza#-
25df53927SLuiz Otavio O Souza# Copyright (c) 2015 Luiz Otavio O Souza <loos@FreeBSD.org>
35df53927SLuiz Otavio O Souza# Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
45df53927SLuiz Otavio O Souza# All rights reserved.
55df53927SLuiz Otavio O Souza#
65df53927SLuiz Otavio O Souza# Redistribution and use in source and binary forms, with or without
75df53927SLuiz Otavio O Souza# modification, are permitted provided that the following conditions
85df53927SLuiz Otavio O Souza# are met:
95df53927SLuiz Otavio O Souza# 1. Redistributions of source code must retain the above copyright
105df53927SLuiz Otavio O Souza#    notice, this list of conditions and the following disclaimer.
115df53927SLuiz Otavio O Souza# 2. Redistributions in binary form must reproduce the above copyright
125df53927SLuiz Otavio O Souza#    notice, this list of conditions and the following disclaimer in the
135df53927SLuiz Otavio O Souza#    documentation and/or other materials provided with the distribution.
145df53927SLuiz Otavio O Souza#
155df53927SLuiz Otavio O Souza# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
165df53927SLuiz Otavio O Souza# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
175df53927SLuiz Otavio O Souza# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
185df53927SLuiz Otavio O Souza# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
195df53927SLuiz Otavio O Souza# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
205df53927SLuiz Otavio O Souza# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
215df53927SLuiz Otavio O Souza# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
225df53927SLuiz Otavio O Souza# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
235df53927SLuiz Otavio O Souza# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
245df53927SLuiz Otavio O Souza# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
255df53927SLuiz Otavio O Souza# SUCH DAMAGE.
265df53927SLuiz Otavio O Souza#
275df53927SLuiz Otavio O Souza# $FreeBSD$
285df53927SLuiz Otavio O Souza#
295df53927SLuiz Otavio O Souza
305df53927SLuiz Otavio O SouzaINTERFACE if_dwc;
315df53927SLuiz Otavio O Souza
325df53927SLuiz Otavio O Souza#include <dev/dwc/if_dwc.h>
335df53927SLuiz Otavio O Souza
345df53927SLuiz Otavio O SouzaCODE {
355df53927SLuiz Otavio O Souza	static int
365df53927SLuiz Otavio O Souza	if_dwc_default_init(device_t dev)
375df53927SLuiz Otavio O Souza	{
385df53927SLuiz Otavio O Souza		return (0);
395df53927SLuiz Otavio O Souza	}
405df53927SLuiz Otavio O Souza
415df53927SLuiz Otavio O Souza	static int
425df53927SLuiz Otavio O Souza	if_dwc_default_mac_type(device_t dev)
435df53927SLuiz Otavio O Souza	{
44188aee74SMichal Meloun		return (DWC_GMAC_EXT_DESC);
455df53927SLuiz Otavio O Souza	}
465df53927SLuiz Otavio O Souza
475df53927SLuiz Otavio O Souza	static int
485df53927SLuiz Otavio O Souza	if_dwc_default_mii_clk(device_t dev)
495df53927SLuiz Otavio O Souza	{
505df53927SLuiz Otavio O Souza		return (GMAC_MII_CLK_25_35M_DIV16);
515df53927SLuiz Otavio O Souza	}
52*824cfb47SOleksandr Tymoshenko
53*824cfb47SOleksandr Tymoshenko	static int
54*824cfb47SOleksandr Tymoshenko	if_dwc_default_set_speed(device_t dev, int speed)
55*824cfb47SOleksandr Tymoshenko	{
56*824cfb47SOleksandr Tymoshenko		return (0);
57*824cfb47SOleksandr Tymoshenko	}
585df53927SLuiz Otavio O Souza};
595df53927SLuiz Otavio O Souza
605df53927SLuiz Otavio O SouzaHEADER {
615df53927SLuiz Otavio O Souza};
625df53927SLuiz Otavio O Souza
635df53927SLuiz Otavio O Souza#
645df53927SLuiz Otavio O Souza# Initialize the SoC specific registers.
655df53927SLuiz Otavio O Souza#
665df53927SLuiz Otavio O SouzaMETHOD int init {
675df53927SLuiz Otavio O Souza	device_t dev;
685df53927SLuiz Otavio O Souza} DEFAULT if_dwc_default_init;
695df53927SLuiz Otavio O Souza
705df53927SLuiz Otavio O Souza#
715df53927SLuiz Otavio O Souza# Return the DWC MAC type (descriptor type).
725df53927SLuiz Otavio O Souza#
735df53927SLuiz Otavio O SouzaMETHOD int mac_type {
745df53927SLuiz Otavio O Souza	device_t dev;
755df53927SLuiz Otavio O Souza} DEFAULT if_dwc_default_mac_type;
765df53927SLuiz Otavio O Souza
775df53927SLuiz Otavio O Souza#
785df53927SLuiz Otavio O Souza# Return the DWC MII clock for a specific hardware.
795df53927SLuiz Otavio O Souza#
805df53927SLuiz Otavio O SouzaMETHOD int mii_clk {
815df53927SLuiz Otavio O Souza	device_t dev;
825df53927SLuiz Otavio O Souza} DEFAULT if_dwc_default_mii_clk;
83*824cfb47SOleksandr Tymoshenko
84*824cfb47SOleksandr Tymoshenko#
85*824cfb47SOleksandr Tymoshenko# Signal media change to a specific hardware
86*824cfb47SOleksandr Tymoshenko#
87*824cfb47SOleksandr TymoshenkoMETHOD int set_speed {
88*824cfb47SOleksandr Tymoshenko	device_t dev;
89*824cfb47SOleksandr Tymoshenko	int speed;
90*824cfb47SOleksandr Tymoshenko} DEFAULT if_dwc_default_set_speed;
91