xref: /dflybsd-src/sys/bus/u4b/usb_if.m (revision 45f67c021c22a0c3ca09f401288709ccccd165aa)
112bd3c8bSSascha Wildner#-
212bd3c8bSSascha Wildner# Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
312bd3c8bSSascha Wildner#
412bd3c8bSSascha Wildner# Redistribution and use in source and binary forms, with or without
512bd3c8bSSascha Wildner# modification, are permitted provided that the following conditions
612bd3c8bSSascha Wildner# are met:
712bd3c8bSSascha Wildner# 1. Redistributions of source code must retain the above copyright
812bd3c8bSSascha Wildner#    notice, this list of conditions and the following disclaimer,
912bd3c8bSSascha Wildner#    without modification, immediately at the beginning of the file.
1012bd3c8bSSascha Wildner# 2. Redistributions in binary form must reproduce the above copyright
1112bd3c8bSSascha Wildner#    notice, this list of conditions and the following disclaimer in the
1212bd3c8bSSascha Wildner#    documentation and/or other materials provided with the distribution.
1312bd3c8bSSascha Wildner# 3. The name of the author may not be used to endorse or promote products
1412bd3c8bSSascha Wildner#    derived from this software without specific prior written permission.
1512bd3c8bSSascha Wildner#
1612bd3c8bSSascha Wildner# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1712bd3c8bSSascha Wildner# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1812bd3c8bSSascha Wildner# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1912bd3c8bSSascha Wildner# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
2012bd3c8bSSascha Wildner# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2112bd3c8bSSascha Wildner# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2212bd3c8bSSascha Wildner# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2312bd3c8bSSascha Wildner# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2412bd3c8bSSascha Wildner# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2512bd3c8bSSascha Wildner# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2612bd3c8bSSascha Wildner#
27*45f67c02SMarkus Pfeiffer# $FreeBSD: head/sys/dev/usb/usb_if.m 228483 2011-12-14 00:28:54Z hselasky $
2812bd3c8bSSascha Wildner#
2912bd3c8bSSascha Wildner
3012bd3c8bSSascha Wildner# USB interface description
3112bd3c8bSSascha Wildner#
3212bd3c8bSSascha Wildner
3312bd3c8bSSascha Wildner#include <sys/bus.h>
3412bd3c8bSSascha Wildner
3512bd3c8bSSascha WildnerINTERFACE usb;
3612bd3c8bSSascha Wildner
3712bd3c8bSSascha Wildner# The device received a control request
3812bd3c8bSSascha Wildner#
3912bd3c8bSSascha Wildner# The value pointed to by "pstate" can be updated to
4012bd3c8bSSascha Wildner# "USB_HR_COMPLETE_OK" to indicate that the control
4112bd3c8bSSascha Wildner# read transfer is complete, in case of short USB
4212bd3c8bSSascha Wildner# control transfers.
4312bd3c8bSSascha Wildner#
4412bd3c8bSSascha Wildner# Return values:
4512bd3c8bSSascha Wildner# 0: Success
4612bd3c8bSSascha Wildner# ENOTTY: Transaction stalled
4712bd3c8bSSascha Wildner# Else: Use builtin request handler
4812bd3c8bSSascha Wildner#
4912bd3c8bSSascha WildnerMETHOD int handle_request {
5012bd3c8bSSascha Wildner	device_t dev;
5112bd3c8bSSascha Wildner	const void *req; /* pointer to the device request */
5212bd3c8bSSascha Wildner	void **pptr; /* data pointer */
5312bd3c8bSSascha Wildner	uint16_t *plen; /* maximum transfer length */
5412bd3c8bSSascha Wildner	uint16_t offset; /* data offset */
5512bd3c8bSSascha Wildner	uint8_t *pstate; /* set if transfer is complete, see USB_HR_XXX */
5612bd3c8bSSascha Wildner};
5712bd3c8bSSascha Wildner
5812bd3c8bSSascha Wildner# Take controller from BIOS
5912bd3c8bSSascha Wildner#
6012bd3c8bSSascha Wildner# Return values:
6112bd3c8bSSascha Wildner# 0: Success
6212bd3c8bSSascha Wildner# Else: Failure
6312bd3c8bSSascha Wildner#
6412bd3c8bSSascha WildnerMETHOD int take_controller {
6512bd3c8bSSascha Wildner	device_t dev;
6612bd3c8bSSascha Wildner};
67