xref: /freebsd-src/share/man/man4/usb_template.4 (revision b2c76c41be32f904179efed29c0ca04d53f3996c)
1f50403d5SHans Petter Selasky.\"
2f50403d5SHans Petter Selasky.\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
3f50403d5SHans Petter Selasky.\"
4f50403d5SHans Petter Selasky.\" Redistribution and use in source and binary forms, with or without
5f50403d5SHans Petter Selasky.\" modification, are permitted provided that the following conditions
6f50403d5SHans Petter Selasky.\" are met:
7f50403d5SHans Petter Selasky.\" 1. Redistributions of source code must retain the above copyright
8f50403d5SHans Petter Selasky.\"    notice, this list of conditions and the following disclaimer.
9f50403d5SHans Petter Selasky.\" 2. Redistributions in binary form must reproduce the above copyright
10f50403d5SHans Petter Selasky.\"    notice, this list of conditions and the following disclaimer in the
11f50403d5SHans Petter Selasky.\"    documentation and/or other materials provided with the distribution.
12f50403d5SHans Petter Selasky.\"
13f50403d5SHans Petter Selasky.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14f50403d5SHans Petter Selasky.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15f50403d5SHans Petter Selasky.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16f50403d5SHans Petter Selasky.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17f50403d5SHans Petter Selasky.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18f50403d5SHans Petter Selasky.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19f50403d5SHans Petter Selasky.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20f50403d5SHans Petter Selasky.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21f50403d5SHans Petter Selasky.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22f50403d5SHans Petter Selasky.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23f50403d5SHans Petter Selasky.\" SUCH DAMAGE.
24f50403d5SHans Petter Selasky.\"
25*63722e52SEdward Tomasz Napierala.Dd August 7, 2019
26f50403d5SHans Petter Selasky.Dt USB_TEMPLATE 4
27f50403d5SHans Petter Selasky.Os
28f50403d5SHans Petter Selasky.
29f50403d5SHans Petter Selasky.Sh NAME
30f50403d5SHans Petter Selasky.
31f50403d5SHans Petter Selasky.
32f50403d5SHans Petter Selasky.Nm usb_template
33f50403d5SHans Petter Selasky.
345c785643SEdward Tomasz Napierala.Nd "USB device side templates"
35f50403d5SHans Petter Selasky.
36f50403d5SHans Petter Selasky.
37f50403d5SHans Petter Selasky.Sh SYNOPSIS
38f50403d5SHans Petter SelaskyTo compile this module into the kernel, place the following line in
39f50403d5SHans Petter Selaskyyour kernel configuration file:
40f50403d5SHans Petter Selasky.Bd -ragged -offset indent
41f50403d5SHans Petter Selasky.Cd "device usb_template"
42f50403d5SHans Petter Selasky.Ed
43f50403d5SHans Petter Selasky.Pp
44f50403d5SHans Petter SelaskyTo load the module at boot time, place the following line in
45f50403d5SHans Petter Selasky.Xr loader.conf 5 :
46f50403d5SHans Petter Selasky.Bd -literal -offset indent
47f50403d5SHans Petter Selaskyusb_template_load="YES"
48f50403d5SHans Petter Selasky.Ed
49f50403d5SHans Petter Selasky.
50f50403d5SHans Petter Selasky.Sh DESCRIPTION
51f50403d5SHans Petter SelaskyThe
52f50403d5SHans Petter Selasky.Nm
53f50403d5SHans Petter Selaskymodule implements various USB templates that are needed when
54f50403d5SHans Petter Selaskyprogramming an USB device side driver.
55f50403d5SHans Petter Selasky.
56f50403d5SHans Petter SelaskyA USB template consists of an USB device descriptor, one or more USB
57f50403d5SHans Petter Selaskyconfiguration descriptors, one or more USB interface descriptors, one
58f50403d5SHans Petter Selaskyor more USB endpoint descriptors, USB strings and additional USB
59f50403d5SHans Petter Selaskydescriptors.
60f50403d5SHans Petter Selasky.
615c785643SEdward Tomasz NapieralaUSB templates are selected using the
625c785643SEdward Tomasz Napierala.Va hw.usb.template
638e06491aSEdward Tomasz Napieralasysctl and tunable,
648e06491aSEdward Tomasz Napieralaor by using the
658e06491aSEdward Tomasz Napierala.Xr usbconfig 8
668e06491aSEdward Tomasz Napierala.Cm set_template
678e06491aSEdward Tomasz Napieralasubcommand.
68a461a5c5SEdward Tomasz NapieralaChanging the
69a461a5c5SEdward Tomasz Napierala.Va hw.usb.template
70a461a5c5SEdward Tomasz Napieralasysctl triggers reenumeration by the USB host; changes to other sysctls
71a461a5c5SEdward Tomasz Napieralamay not be visible to the host until reenumeration is performed.
72a461a5c5SEdward Tomasz Napierala.Pp
735c785643SEdward Tomasz NapieralaAvailable templates are:
745c785643SEdward Tomasz Napierala.Bl -column -offset 3n "Value"
755c785643SEdward Tomasz Napierala.It Em Value Ta Em Description
7654d09d9cSEdward Tomasz Napierala.It Dv 0 Ta USB Mass Storage, see
7754d09d9cSEdward Tomasz Napierala.Xr cfumass 4
7854d09d9cSEdward Tomasz Napierala.It Dv 1 Ta CDC Ethernet, see
7954d09d9cSEdward Tomasz Napierala.Xr cdce 4
805c785643SEdward Tomasz Napierala.It Dv 2 Ta Media Transfer Protocol (MTP)
8154d09d9cSEdward Tomasz Napierala.It Dv 3 Ta USB serial port, see
8254d09d9cSEdward Tomasz Napierala.Xr umodem 4
835c785643SEdward Tomasz Napierala.It Dv 4 Ta USB audio
845c785643SEdward Tomasz Napierala.It Dv 5 Ta USB keyboard
855c785643SEdward Tomasz Napierala.It Dv 6 Ta USB mouse
865c785643SEdward Tomasz Napierala.It Dv 7 Ta USB phone
875c785643SEdward Tomasz Napierala.It Dv 8 Ta CDC Ethernet and serial port
885c785643SEdward Tomasz Napierala.It Dv 9 Ta USB MIDI
893dc87e52SEdward Tomasz Napierala.It Dv 10 Ta CDC Ethernet, serial port, and storage
90*63722e52SEdward Tomasz Napierala.It Dv 11 Ta CDC Ethernet Emulation Model, see
91*63722e52SEdward Tomasz Napierala.Xr cdceem 4
925c785643SEdward Tomasz Napierala.El
93f50403d5SHans Petter Selasky.
948e06491aSEdward Tomasz Napierala.Sh SYSCTL VARIABLES
958e06491aSEdward Tomasz NapieralaThe following variables are available as both
968e06491aSEdward Tomasz Napierala.Xr sysctl 8
978e06491aSEdward Tomasz Napieralavariables and
988e06491aSEdward Tomasz Napierala.Xr loader 8
998e06491aSEdward Tomasz Napieralatunables:
1008e06491aSEdward Tomasz Napierala.Bl -tag -width indent
1018e06491aSEdward Tomasz Napierala.It Va hw.usb.template
1028e06491aSEdward Tomasz NapieralaCurrently selected template.
103a461a5c5SEdward Tomasz NapieralaSet to -1 to make the device disappear from the USB host point of view.
104d008c0d7SEdward Tomasz Napierala.It Va hw.usb.template_power
1056ad033c2SEdward Tomasz NapieralaUSB bus power consumption in mA at 5V.
106d008c0d7SEdward Tomasz NapieralaMust be between 0 and 500.
107d008c0d7SEdward Tomasz NapieralaSetting to 0 marks the device as self-powered.
108d008c0d7SEdward Tomasz NapieralaDefaults to 500mA.
1098e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N
1108e06491aSEdward Tomasz NapieralaConfiguration for template number
1118e06491aSEdward Tomasz Napierala.Va N .
1128e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.vendor_id
1138e06491aSEdward Tomasz Napierala16-bit vendor identifier (VID), usually assigned by USB-IF.
1148e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.product_id
1158e06491aSEdward Tomasz Napierala16-bit product identifier (PID).
1168e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.manufacturer
1178e06491aSEdward Tomasz NapieralaString containing human-readable manufacturer name.
1188e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.product
1198e06491aSEdward Tomasz NapieralaString containing human-readable product name.
1208e06491aSEdward Tomasz Napierala.El
121f50403d5SHans Petter Selasky.Sh SEE ALSO
122cc5bbcb2SEdward Tomasz Napierala.Xr cfumass 4 ,
1235c785643SEdward Tomasz Napierala.Xr usb 4 ,
1248e06491aSEdward Tomasz Napierala.Xr usfs 4 ,
1258e06491aSEdward Tomasz Napierala.Xr usbconfig 8
126f50403d5SHans Petter Selasky.Sh STANDARDS
127f50403d5SHans Petter SelaskyThe
128f50403d5SHans Petter Selasky.Nm
129f50403d5SHans Petter Selaskymodule complies to the USB 1.0, 2.0 and 3.0 standard.
130f50403d5SHans Petter Selasky.Sh HISTORY
131f50403d5SHans Petter SelaskyThe
132f50403d5SHans Petter Selasky.Nm
133f50403d5SHans Petter Selaskymodule was written by
1346c899950SBaptiste Daroussin.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org .
135