134646d2eSMarkus Pfeiffer /*- 234646d2eSMarkus Pfeiffer * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. 334646d2eSMarkus Pfeiffer * 434646d2eSMarkus Pfeiffer * Redistribution and use in source and binary forms, with or without 534646d2eSMarkus Pfeiffer * modification, are permitted provided that the following conditions 634646d2eSMarkus Pfeiffer * are met: 734646d2eSMarkus Pfeiffer * 1. Redistributions of source code must retain the above copyright 834646d2eSMarkus Pfeiffer * notice, this list of conditions and the following disclaimer. 934646d2eSMarkus Pfeiffer * 2. Redistributions in binary form must reproduce the above copyright 1034646d2eSMarkus Pfeiffer * notice, this list of conditions and the following disclaimer in the 1134646d2eSMarkus Pfeiffer * documentation and/or other materials provided with the distribution. 1234646d2eSMarkus Pfeiffer * 1334646d2eSMarkus Pfeiffer * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1434646d2eSMarkus Pfeiffer * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1534646d2eSMarkus Pfeiffer * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1634646d2eSMarkus Pfeiffer * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1734646d2eSMarkus Pfeiffer * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1834646d2eSMarkus Pfeiffer * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1934646d2eSMarkus Pfeiffer * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2034646d2eSMarkus Pfeiffer * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2134646d2eSMarkus Pfeiffer * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2234646d2eSMarkus Pfeiffer * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2334646d2eSMarkus Pfeiffer * SUCH DAMAGE. 2434646d2eSMarkus Pfeiffer */ 2534646d2eSMarkus Pfeiffer 2634646d2eSMarkus Pfeiffer /* 2734646d2eSMarkus Pfeiffer * Including this file is mandatory for all USB related c-files in the kernel. 2834646d2eSMarkus Pfeiffer */ 2934646d2eSMarkus Pfeiffer 30*6d36bf95SSascha Wildner #ifndef _USB_DRAGONFLY_H_ 31*6d36bf95SSascha Wildner #define _USB_DRAGONFLY_H_ 3234646d2eSMarkus Pfeiffer 3334646d2eSMarkus Pfeiffer /* Default USB configuration */ 3434646d2eSMarkus Pfeiffer #define USB_HAVE_UGEN 1 3534646d2eSMarkus Pfeiffer #define USB_HAVE_DEVCTL 1 3634646d2eSMarkus Pfeiffer #define USB_HAVE_BUSDMA 1 372887e534SSascha Wildner #define USB_HAVE_COMPAT_LINUX 0 /* XXX */ 3834646d2eSMarkus Pfeiffer #define USB_HAVE_USER_IO 1 3934646d2eSMarkus Pfeiffer #define USB_HAVE_MBUF 1 4034646d2eSMarkus Pfeiffer #define USB_HAVE_TT_SUPPORT 1 4134646d2eSMarkus Pfeiffer #define USB_HAVE_POWERD 1 4234646d2eSMarkus Pfeiffer #define USB_HAVE_MSCTEST 1 43*6d36bf95SSascha Wildner #define USB_HAVE_MSCTEST_DETACH 1 44f5199fbfSMarkus Pfeiffer #define USB_HAVE_PF 1 459678c01fSMarkus Pfeiffer #define USB_HAVE_ROOT_MOUNT_HOLD 0 4634646d2eSMarkus Pfeiffer #define USB_HAVE_ID_SECTION 1 4734646d2eSMarkus Pfeiffer #define USB_HAVE_PER_BUS_PROCESS 1 4834646d2eSMarkus Pfeiffer #define USB_HAVE_FIXED_ENDPOINT 0 4934646d2eSMarkus Pfeiffer #define USB_HAVE_FIXED_IFACE 0 5034646d2eSMarkus Pfeiffer #define USB_HAVE_FIXED_CONFIG 0 5134646d2eSMarkus Pfeiffer #define USB_HAVE_FIXED_PORT 0 525ea2ce29SSascha Wildner #define USB_HAVE_DISABLE_ENUM 1 5334646d2eSMarkus Pfeiffer 5406cb2463SMarkus Pfeiffer /* define zero ticks callout value */ 5506cb2463SMarkus Pfeiffer #define USB_CALLOUT_ZERO_TICKS 1 5606cb2463SMarkus Pfeiffer 5734646d2eSMarkus Pfeiffer #define USB_TD_GET_PROC(td) (td)->td_proc 5834646d2eSMarkus Pfeiffer #define USB_PROC_GET_GID(td) (td)->p_pgid 5934646d2eSMarkus Pfeiffer 6034646d2eSMarkus Pfeiffer #if (!defined(USB_HOST_ALIGN)) || (USB_HOST_ALIGN <= 0) 6134646d2eSMarkus Pfeiffer /* Use default value. */ 6234646d2eSMarkus Pfeiffer #undef USB_HOST_ALIGN 6334646d2eSMarkus Pfeiffer #define USB_HOST_ALIGN 8 /* bytes, must be power of two */ 6434646d2eSMarkus Pfeiffer #endif 6534646d2eSMarkus Pfeiffer /* Sanity check for USB_HOST_ALIGN: Verify power of two. */ 6634646d2eSMarkus Pfeiffer #if ((-USB_HOST_ALIGN) & USB_HOST_ALIGN) != USB_HOST_ALIGN 6734646d2eSMarkus Pfeiffer #error "USB_HOST_ALIGN is not power of two." 6834646d2eSMarkus Pfeiffer #endif 6934646d2eSMarkus Pfeiffer #define USB_FS_ISOC_UFRAME_MAX 4 /* exclusive unit */ 7034646d2eSMarkus Pfeiffer #define USB_BUS_MAX 256 /* units */ 7134646d2eSMarkus Pfeiffer #define USB_MAX_DEVICES 128 /* units */ 7234646d2eSMarkus Pfeiffer #define USB_CONFIG_MAX 65535 /* bytes */ 7334646d2eSMarkus Pfeiffer #define USB_IFACE_MAX 32 /* units */ 7434646d2eSMarkus Pfeiffer #define USB_FIFO_MAX 128 /* units */ 7534646d2eSMarkus Pfeiffer #define USB_MAX_EP_STREAMS 8 /* units */ 7634646d2eSMarkus Pfeiffer #define USB_MAX_EP_UNITS 32 /* units */ 7734646d2eSMarkus Pfeiffer #define USB_MAX_PORTS 255 /* units */ 7834646d2eSMarkus Pfeiffer 7934646d2eSMarkus Pfeiffer #define USB_MAX_FS_ISOC_FRAMES_PER_XFER (120) /* units */ 8034646d2eSMarkus Pfeiffer #define USB_MAX_HS_ISOC_FRAMES_PER_XFER (8*120) /* units */ 8134646d2eSMarkus Pfeiffer 8234646d2eSMarkus Pfeiffer #define USB_HUB_MAX_DEPTH 5 8334646d2eSMarkus Pfeiffer #define USB_EP0_BUFSIZE 1024 /* bytes */ 8434646d2eSMarkus Pfeiffer #define USB_CS_RESET_LIMIT 20 /* failures = 20 * 50 ms = 1sec */ 8534646d2eSMarkus Pfeiffer 8634646d2eSMarkus Pfeiffer #define USB_MAX_AUTO_QUIRK 4 /* maximum number of dynamic quirks */ 8734646d2eSMarkus Pfeiffer 8834646d2eSMarkus Pfeiffer typedef uint32_t usb_timeout_t; /* milliseconds */ 8934646d2eSMarkus Pfeiffer typedef uint32_t usb_frlength_t; /* bytes */ 9034646d2eSMarkus Pfeiffer typedef uint32_t usb_frcount_t; /* units */ 9134646d2eSMarkus Pfeiffer typedef uint32_t usb_size_t; /* bytes */ 9234646d2eSMarkus Pfeiffer typedef uint32_t usb_ticks_t; /* system defined */ 9334646d2eSMarkus Pfeiffer typedef uint16_t usb_power_mask_t; /* see "USB_HW_POWER_XXX" */ 9434646d2eSMarkus Pfeiffer typedef uint16_t usb_stream_t; /* stream ID */ 9534646d2eSMarkus Pfeiffer 96*6d36bf95SSascha Wildner #endif /* _USB_DRAGONFLY_H_ */ 97