1.\" $FreeBSD$ 2.\" 3.\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.Dd June 8, 2016 27.Dt USB_TEMPLATE 4 28.Os 29. 30.Sh NAME 31. 32. 33.Nm usb_template 34. 35.Nd "USB device side templates" 36. 37. 38.Sh SYNOPSIS 39To compile this module into the kernel, place the following line in 40your kernel configuration file: 41.Bd -ragged -offset indent 42.Cd "device usb_template" 43.Ed 44.Pp 45To load the module at boot time, place the following line in 46.Xr loader.conf 5 : 47.Bd -literal -offset indent 48usb_template_load="YES" 49.Ed 50. 51.Sh DESCRIPTION 52The 53.Nm 54module implements various USB templates that are needed when 55programming an USB device side driver. 56. 57A USB template consists of an USB device descriptor, one or more USB 58configuration descriptors, one or more USB interface descriptors, one 59or more USB endpoint descriptors, USB strings and additional USB 60descriptors. 61. 62USB templates are selected using the 63.Va hw.usb.template 64sysctl and tunable, 65or by using the 66.Xr usbconfig 8 67.Cm set_template 68subcommand. 69The sysctl values can be changed at any time, but will not 70have any effect until the USB device has been re-enumerated. 71. 72Available templates are: 73.Bl -column -offset 3n "Value" 74.It Em Value Ta Em Description 75.It Dv 0 Ta USB Mass Storage 76.It Dv 1 Ta CDC Ethernet 77.It Dv 2 Ta Media Transfer Protocol (MTP) 78.It Dv 3 Ta USB serial port 79.It Dv 4 Ta USB audio 80.It Dv 5 Ta USB keyboard 81.It Dv 6 Ta USB mouse 82.It Dv 7 Ta USB phone 83.It Dv 8 Ta CDC Ethernet and serial port 84.It Dv 9 Ta USB MIDI 85.El 86. 87.Sh SYSCTL VARIABLES 88The following variables are available as both 89.Xr sysctl 8 90variables and 91.Xr loader 8 92tunables: 93.Bl -tag -width indent 94.It Va hw.usb.template 95Currently selected template. 96.It Va hw.usb.templates.N 97Configuration for template number 98.Va N . 99.It Va hw.usb.templates.N.vendor_id 10016-bit vendor identifier (VID), usually assigned by USB-IF. 101.It Va hw.usb.templates.N.product_id 10216-bit product identifier (PID). 103.It Va hw.usb.templates.N.manufacturer 104String containing human-readable manufacturer name. 105.It Va hw.usb.templates.N.product 106String containing human-readable product name. 107.El 108.Sh SEE ALSO 109.Xr cfumass 4 , 110.Xr usb 4 , 111.Xr usfs 4 , 112.Xr usbconfig 8 113.Sh STANDARDS 114The 115.Nm 116module complies to the USB 1.0, 2.0 and 3.0 standard. 117.Sh HISTORY 118The 119.Nm 120module was written by 121.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org . 122