1#         $NetBSD: files.usb,v 1.182 2025/04/03 16:33:48 bouyer Exp $
2#
3# Config file and device description for machine-independent USB code.
4# Included by ports that need it.  Ports that use it must provide
5# their own "major" declarations for the appropriate devices.
6
7defflag   USBVERBOSE
8defflag   opt_usb.h USB_FRAG_DMA_WORKAROUND
9defparam opt_usb.h  USB_DEBUG_DEFAULT: USB_DEBUG
10
11# HC controllers
12defflag   opt_usb.h EHCI_DEBUG: USB_DEBUG
13defparam opt_usb.h  EHCI_DEBUG_DEFAULT: EHCI_DEBUG
14defflag   opt_usb.h OHCI_DEBUG: USB_DEBUG
15defflag   opt_usb.h UHCI_DEBUG: USB_DEBUG
16defflag   opt_usb.h DWC2_DEBUG: USB_DEBUG
17defflag   opt_usb.h XHCI_DEBUG: USB_DEBUG
18defflag   opt_usb.h MOTG_DEBUG: USB_DEBUG
19defflag   opt_usb.h SLHCI_DEBUG: USB_DEBUG
20
21# HUB driver
22defflag opt_usb.h   UHUB_DEBUG: USB_DEBUG
23
24# Device drivers
25
26defflag opt_usb.h   ATU_DEBUG: USB_DEBUG
27defflag opt_usb.h   AUE_DEBUG: USB_DEBUG
28defflag opt_usb.h   AUVITEK_I2C_DEBUG: USB_DEBUG
29defflag opt_usb.h   AXE_DEBUG: USB_DEBUG
30defflag opt_usb.h   AXEN_DEBUG: USB_DEBUG
31defflag opt_usb.h   CUE_DEBUG: USB_DEBUG
32defflag opt_usb.h   KUE_DEBUG: USB_DEBUG
33defflag opt_usb.h   OTUS_DEBUG: USB_DEBUG
34defflag opt_usb.h   RUM_DEBUG: USB_DEBUG
35defflag opt_usb.h   RUN_DEBUG: USB_DEBUG
36defflag opt_usb.h   UARK_DEBUG: USB_DEBUG
37defflag opt_usb.h   UATP_DEBUG: USB_DEBUG
38defflag opt_usb.h   UAUDIO_DEBUG: USB_DEBUG
39defflag opt_usb.h   UBERRY_DEBUG: USB_DEBUG
40defflag opt_usb.h   UBSA_DEBUG: USB_DEBUG
41defflag opt_usb.h   UBT_DEBUG: USB_DEBUG
42defflag opt_usb.h   UCHCOM_DEBUG: USB_DEBUG
43defflag opt_usb.h   UCOM_DEBUG: USB_DEBUG
44defflag opt_usb.h   UCYCOM_DEBUG: USB_DEBUG
45defflag opt_usb.h   UDAV_DEBUG: USB_DEBUG
46defflag opt_usb.h   UDL_DEBUG: USB_DEBUG
47defflag opt_usb.h   UDSBR_DEBUG: USB_DEBUG
48defflag opt_usb.h   UFTDI_DEBUG: USB_DEBUG
49defflag opt_usb.h   UGENSA_DEBUG: USB_DEBUG
50defflag opt_usb.h   UGEN_DEBUG: USB_DEBUG
51defparam opt_usb.h  UGEN_DEBUG_DEFAULT: UGEN_DEBUG
52defflag opt_usb.h   UHIDEV_DEBUG: USB_DEBUG
53defflag opt_usb.h   UHID_DEBUG: USB_DEBUG
54defflag opt_usb.h   UHMODEM_DEBUG: USB_DEBUG
55defflag opt_usb.h   UHSO_DEBUG: USB_DEBUG
56defflag opt_usb.h   UIPAD_DEBUG: USB_DEBUG
57defflag opt_usb.h   UIPAQ_DEBUG: USB_DEBUG
58defflag opt_usb.h   UIRDA_DEBUG: USB_DEBUG
59defflag opt_usb.h   UKBD_DEBUG: USB_DEBUG
60defflag opt_usb.h   UKYOPON_DEBUG: USB_DEBUG
61defflag opt_usb.h   ULPT_DEBUG: USB_DEBUG
62defflag opt_usb.h   UMASS_DEBUG: USB_DEBUG
63defflag opt_usb.h   UMCT_DEBUG: USB_DEBUG
64defflag opt_usb.h   UMIDIQUIRK_DEBUG: USB_DEBUG
65defflag opt_usb.h   UMIDI_DEBUG: USB_DEBUG
66defflag opt_usb.h   UMODEM_DEBUG: USB_DEBUG
67defflag opt_usb.h   UMS_DEBUG: USB_DEBUG
68defparam opt_usb.h  UMS_DEBUG_DEFAULT: UMS_DEBUG
69defflag opt_usb.h   UPGT_DEBUG: USB_DEBUG
70defflag opt_usb.h   UPLCOM_DEBUG: USB_DEBUG
71defflag opt_usb.h   UPL_DEBUG: USB_DEBUG
72defflag opt_usb.h   URAL_DEBUG: USB_DEBUG
73defflag opt_usb.h   URL_DEBUG: USB_DEBUG
74defflag opt_usb.h   URNDIS_DEBUG: USB_DEBUG
75defflag opt_usb.h   URTWN_DEBUG: USB_DEBUG
76defparam opt_usb.h  URTWN_DEBUG_DEFAULT: URTWN_DEBUG
77defflag opt_usb.h   URTW_DEBUG: USB_DEBUG
78defflag opt_usb.h   USBNET_DEBUG: USB_DEBUG
79defflag opt_usb.h   USCANNER_DEBUG: USB_DEBUG
80defflag opt_usb.h   USLSA_DEBUG: USB_DEBUG
81defflag opt_usb.h   USMSC_DEBUG: USB_DEBUG
82defflag opt_usb.h   USSCANNER_DEBUG: USB_DEBUG
83defflag opt_usb.h   USTIR_DEBUG: USB_DEBUG
84defflag opt_usb.h   UTHUM_DEBUG: USB_DEBUG
85defflag opt_usb.h   UTOPPY_DEBUG: USB_DEBUG
86defflag opt_usb.h   UTS_DEBUG: USB_DEBUG
87defflag opt_usb.h   UVIDEO_DEBUG: USB_DEBUG
88defflag opt_usb.h   UVISOR_DEBUG: USB_DEBUG
89defflag opt_usb.h   UVSCOM_DEBUG: USB_DEBUG
90defflag opt_usb.h   ZYD_DEBUG: USB_DEBUG
91defflag opt_usb.h   UMSCMIO_DEBUG: USB_DEBUG
92
93define    usbroothubif { }
94define    usbdevif { [port = -1], [configuration = -1], [interface = -1],
95                       [vendor = -1], [product = -1], [release = -1] }
96define    usbifif { [port = -1], [configuration = -1], [interface = -1],
97                      [vendor = -1], [product = -1], [release = -1] }
98
99device    usb: usbroothubif
100attach    usb at usbus
101file      dev/usb/usb.c                           usb                           needs-flag
102file      dev/usb/usbdi.c                         usb
103file      dev/usb/usbdi_util.c                    usb
104file      dev/usb/usb_subr.c            usb
105file      dev/usb/usb_quirks.c                    usb
106
107define    usb_dma: usb
108file      dev/usb/usb_mem.c             usb_dma                       needs-flag
109
110define    usbnet: usb
111file      dev/usb/usbnet.c              usbnet
112
113file      dev/usb/usb_verbose.c                   usbverbose & usb
114
115# Hub driver
116device    uhub: usbdevif, usbifif
117attach    uhub at usbroothubif with uroothub
118attach    uhub at usbdevif
119file      dev/usb/uhub.c                          usb
120
121# Modem and com serial port "bus"
122define    ucombus {[ portno = -1 ]}
123
124# Audio devices
125device    uaudio: audiobus
126attach    uaudio at usbifif
127file      dev/usb/uaudio.c              uaudio
128
129# MIDI devices
130device    umidi: midibus
131attach    umidi at usbifif
132file      dev/usb/umidi.c                         umidi
133file      dev/usb/umidi_quirks.c                  umidi
134
135# Modem and com serial port
136device    ucom
137attach    ucom at ucombus
138file      dev/usb/ucom.c                          ucom | ucombus                needs-flag
139
140
141# Generic devices
142device    ugen
143attach    ugen at usbdevif
144device    ugenif
145attach    ugenif at usbifif
146file      dev/usb/ugen.c                          ugen | ugenif                 needs-flag
147
148
149# HID
150# HID "bus"
151define    uhidbus {[ reportid = -1 ]}
152
153# HID root device for multiple report IDs
154device    uhidev: hid, uhidbus
155attach    uhidev at usbifif
156file      dev/usb/uhidev.c              uhidev
157
158# Generic HID devices
159device    uhid: hid
160attach    uhid at uhidbus
161file      dev/usb/uhid.c                          uhid                          needs-flag
162
163# Keyboards
164defparam  UKBD_LAYOUT
165# Gdium's Fn key needs software translation
166defflag             opt_ukbd.h          GDIUM_KEYBOARD_HACK
167device    ukbd: hid, wskbddev
168attach    ukbd at uhidbus
169file      dev/usb/ukbd.c                          ukbd                          needs-flag
170
171# Mice
172device    ums: hid, hidms, wsmousedev
173attach    ums at uhidbus
174file      dev/usb/ums.c                           ums
175
176# USB Apple trackpad
177device    uatp: hid, wsmousedev
178attach    uatp at uhidbus
179file      dev/usb/uatp.c                          uatp
180
181# Touchscreens
182device    uts: hid, wsmousedev, tpcalib
183attach    uts at uhidbus
184file      dev/usb/uts.c                           uts
185
186# eGalax USB Touch Panel
187device    uep: wsmousedev, tpcalib
188attach    uep at usbdevif
189file      dev/usb/uep.c                           uep                           needs-flag
190
191# Wacom Intuos PTS Pen
192device    uintuos: wsmousedev, tpcalib
193attach    uintuos at uhidbus
194file      dev/usb/uintuos.c                       uintuos
195
196# Cypress microcontroller based serial adapters
197device    ucycom: hid
198attach    ucycom at uhidbus
199file      dev/usb/ucycom.c              ucycom                        needs-flag
200
201# Printers
202device    ulpt
203attach    ulpt at usbifif
204file      dev/usb/ulpt.c                          ulpt                          needs-flag
205
206
207# Mass storage
208device    umass: scsi, atapi
209attach    umass at usbifif
210file      dev/usb/umass.c                         umass
211file      dev/usb/umass_quirks.c                  umass
212file      dev/usb/umass_scsipi.c                  umass & (scsibus | atapibus)
213
214
215# IrDA bridges
216device    uirda: irbus
217attach    uirda at usbifif
218file      dev/usb/uirda.c                         uirda | stuirda
219
220# SigmaTel not quite UIRDA IrDA bridge
221device    stuirda: irbus,firmload
222attach    stuirda at usbifif
223file      dev/usb/stuirda.c             stuirda
224
225# SigmaTel IrDA bridge
226device    ustir: irbus, irdasir
227attach    ustir at usbdevif
228file      dev/usb/ustir.c                         ustir
229
230# Windows Media Center IR tranceivers
231device    irmce: irbus
232attach    irmce at usbifif
233file      dev/usb/irmce.c                         irmce
234
235
236# Bluetooth controllers
237device    ubt: btbus, bluetooth
238attach    ubt at usbdevif
239file      dev/usb/ubt.c                           ubt
240
241# Atheros USB Bluetooth firmware load
242device    aubtfwl: firmload
243attach    aubtfwl at usbdevif
244file      dev/usb/aubtfwl.c             aubtfwl
245
246#
247# Capture devices
248#
249
250# Sony PLAYSTATION(R) Eye
251device    pseye: videobus
252attach    pseye at usbifif
253file      dev/usb/pseye.c                         pseye
254
255# USB Video Class capture devices
256device    uvideo: videobus
257attach    uvideo at usbifif
258file      dev/usb/uvideo.c              uvideo
259
260# Auvitek AU0828
261device    auvitek: videobus, dtvbus, i2cbus, i2cexec, usbifif, au8522, xc5k
262attach    auvitek at usbdevif
263file      dev/usb/auvitek.c             auvitek
264file      dev/usb/auvitek_audio.c                 auvitek
265file      dev/usb/auvitek_board.c                 auvitek
266file      dev/usb/auvitek_dtv.c                   auvitek
267file      dev/usb/auvitek_i2c.c                   auvitek
268file      dev/usb/auvitek_video.c                 auvitek
269
270# Empia EM28xx
271device    emdtv: dtvbus, irbus, i2cexec, lg3303, xc3028
272attach    emdtv at usbdevif
273file      dev/usb/emdtv.c                         emdtv
274file      dev/usb/emdtv_board.c                   emdtv
275file      dev/usb/emdtv_dtv.c           emdtv
276file      dev/usb/emdtv_i2c.c           emdtv
277file      dev/usb/emdtv_ir.c            emdtv
278
279#
280# Misc
281#
282
283# Mode switch usb driver
284device    umodeswitch
285attach    umodeswitch at usbdevif
286file      dev/usb/umodeswitch.c                   umodeswitch
287
288# Apple iPad
289device    uipad
290attach    uipad at usbdevif
291file      dev/usb/uipad.c                                   uipad
292
293# BlackBerries
294device    uberry
295attach    uberry at usbdevif
296file      dev/usb/uberry.c                        uberry
297
298# Handspring Visor
299device    uvisor: ucombus
300attach    uvisor at usbdevif
301file      dev/usb/uvisor.c              uvisor
302
303# Generic Serial Adapter
304device    ugensa: ucombus
305attach    ugensa at usbdevif
306file      dev/usb/ugensa.c              ugensa
307
308# 3G Modem
309device    u3g: ucombus, umodeswitch
310attach    u3g at usbifif
311file      dev/usb/u3g.c                           u3g
312
313# D-Link DSB-R100 FM radio
314device    udsbr: radiodev
315attach    udsbr at usbdevif
316file      dev/usb/udsbr.c                         udsbr
317
318# Silicon Labs USB radio module (FM)
319device    slurm: radiodev
320attach    slurm at usbifif
321file      dev/usb/slurm.c                         slurm
322
323# TEMPerHUM HID
324device    uthum: hid, sysmon_envsys
325attach    uthum at uhidbus
326file      dev/usb/uthum.c                         uthum
327
328# Ethernet adapters
329# ADMtek AN986 Pegasus
330device    aue: arp, ether, ifnet, mii, mii_phy, usbnet
331attach    aue at usbdevif
332file      dev/usb/if_aue.c              aue
333
334# CDC Ethernet
335device    cdce: arp, ether, ifnet, usbnet
336attach    cdce at usbifif
337file      dev/usb/if_cdce.c             cdce
338
339# CATC USB-EL1201A
340device    cue: arp, ether, ifnet, usbnet
341attach    cue at usbdevif
342file      dev/usb/if_cue.c              cue
343
344# Kawasaki LSI KL5KUSB101B
345device    kue: arp, ether, ifnet, usbnet
346attach    kue at usbdevif
347file      dev/usb/if_kue.c              kue
348
349# Prolific PL2302 host-host
350device    upl: ifnet, usbnet
351attach    upl at usbdevif
352file      dev/usb/if_upl.c              upl
353
354# Realtek RTL8150L(M)
355device    url: arp, ether, ifnet, mii, usbnet
356attach    url at usbdevif
357file      dev/usb/if_url.c              url
358
359# ASIX AX88172
360device    axe: arp, ether, ifnet, mii, mii_phy, usbnet
361attach    axe at usbdevif
362file      dev/usb/if_axe.c              axe
363
364# ASIX AX88178a and AX88179
365device    axen: arp, ether, ifnet, mii, usbnet
366attach    axen at usbdevif
367file      dev/usb/if_axen.c             axen
368
369# Moscom MCS7730, MCS7830, and MCS7832
370device    mos: arp, ether, ifnet, mii, mii_phy, usbnet
371attach    mos at usbdevif
372file      dev/usb/if_mos.c              mos
373
374# Microchip LAN750x and LAN85xx
375device    mue: arp, ether, ifnet, mii, mii_phy, usbnet
376attach    mue at usbdevif
377file      dev/usb/if_mue.c              mue
378
379# Network Control Model
380device ncm: arp, ether, ifnet, usbnet
381attach ncm at usbifif
382file      dev/usb/if_ncm.c              ncm
383
384# Atheros AR9170
385device    otus: arp, ether, firmload, ifnet, wlan
386attach    otus at usbdevif
387file      dev/usb/if_otus.c             otus
388
389# DAVICOM DM9601
390device    udav: arp, ether, ifnet, mii, mii_phy, usbnet
391attach    udav at usbdevif
392file      dev/usb/if_udav.c             udav
393
394# Mobile Broadband Interface Model
395device    umb: ifnet
396attach    umb at usbifif
397file      dev/usb/if_umb.c              umb
398
399# RealTek RTL8152 and RTL8153
400device    ure: arp, ether, ifnet, mii, mii_phy, usbnet
401attach    ure at usbdevif
402file      dev/usb/if_ure.c              ure
403
404# Serial drivers
405# Modems
406define    umodem_common
407file      dev/usb/umodem_common.c                 umodem_common
408device    umodem: ucombus, umodem_common
409attach    umodem at usbifif
410file      dev/usb/umodem.c              umodem
411
412# FTDI serial driver
413device    uftdi: ucombus
414attach    uftdi at usbifif
415file      dev/usb/uftdi.c                         uftdi
416
417# Prolific PL2303 serial driver
418device    uplcom: ucombus
419attach    uplcom at usbdevif
420file      dev/usb/uplcom.c              uplcom
421
422# MCT USB-232 serial driver
423device    umct: ucombus
424attach    umct at usbdevif
425file      dev/usb/umct.c                          umct
426
427# MOSCHIP MCS7xxx serial driver
428device    umcs: ucombus
429attach    umcs at usbdevif
430file      dev/usb/umcs.c                          umcs
431
432# SUNTAC Slipper U VS-10U driver
433device    uvscom: ucombus
434attach    uvscom at usbdevif
435file      dev/usb/uvscom.c              uvscom
436
437# Exar XR21V141x serial driver (mostly CDC)
438device    uxrcom: ucombus, umodem_common
439attach    uxrcom at usbifif
440file      dev/usb/uxrcom.c              uxrcom
441
442# Belkin & other serial driver
443define    ubsa_common
444file      dev/usb/ubsa_common.c                   ubsa_common
445device    ubsa: ucombus, ubsa_common
446attach    ubsa at usbdevif
447file      dev/usb/ubsa.c                          ubsa
448
449# Huawei E220 3G/HSDPA modem (ubsa)
450device    uhmodem: ucombus, ubsa_common
451attach    uhmodem at usbifif
452file      dev/usb/uhmodem.c             uhmodem
453
454# iPAQ PDAs
455device    uipaq: ucombus
456attach    uipaq at usbdevif
457file      dev/usb/uipaq.c                         uipaq
458
459# Kyocera AIR-EDGE PHONE
460device    ukyopon: ucombus, umodem_common
461attach    ukyopon at usbifif
462file      dev/usb/ukyopon.c             ukyopon
463
464# ArkMicroChips 3116 based serial (used with some Nokia USB cables too)
465device    uark: ucombus
466attach    uark at usbdevif
467file      dev/usb/uark.c                uark
468
469# Silicon Labs CP210x serial driver
470device    uslsa: ucombus
471attach    uslsa at usbifif
472file      dev/usb/uslsa.c                         uslsa
473
474# WinChipHead CH341/340 serial driver
475device    uchcom: ucombus
476attach    uchcom at usbdevif
477file      dev/usb/uchcom.c              uchcom
478
479# Avision SCSI over USB, HP5300
480device    usscanner: scsi
481attach    usscanner at usbdevif
482file      dev/usb/usscanner.c           usscanner
483
484# Atmel AT76c503 / AT76c503a / AT76c505 / AT76c505a @ USB
485device    atu: ether, ifnet, arp, wlan
486attach    atu at usbdevif
487file      dev/usb/if_atu.c              atu
488
489# Intersil PrismGT
490device    upgt: ether, ifnet, arp, wlan, firmload
491attach    upgt at usbdevif
492file      dev/usb/if_upgt.c             upgt
493
494# SMSC LAN95xx
495device    usmsc: arp, ether, ifnet, mii, mii_phy, usbnet
496attach    usmsc at usbdevif
497file      dev/usb/if_smsc.c             usmsc
498
499# Ralink Technology RT2500USB
500device    ural: arp, ether, ifnet, wlan, firmload
501attach    ural at usbdevif
502file      dev/usb/if_ural.c             ural
503
504device    rum: ether, ifnet, arp, wlan, firmload
505attach    rum at usbdevif
506file      dev/usb/if_rum.c              rum
507
508# Topfield digital PVRs
509device    utoppy
510attach    utoppy at usbdevif
511file      dev/usb/utoppy.c              utoppy
512
513# Zydas ZD1211
514device    zyd: ether, ifnet, arp, wlan, firmload
515attach    zyd at usbdevif
516file      dev/usb/if_zyd.c              zyd
517
518# Geschwister Schneider USB to CAN interface (and clones)
519device gscan: ifnet
520attach gscan at usbdevif
521file      dev/usb/if_gscan.c            gscan
522
523# DisplayLink DL-1x0/DL-1x5
524device    udl: wsemuldisplaydev, rasops16, edid, firmload
525attach    udl at usbdevif
526file      dev/usb/udl.c                           udl
527
528# Wireless WAN modems from Option N.V.
529device    uhso: ifnet
530attach    uhso at usbdevif
531file      dev/usb/uhso.c                          uhso
532
533# Microsoft RNDIS
534device    urndis: arp, ether, ifnet, usbnet
535attach    urndis at usbifif
536file      dev/usb/if_urndis.c           urndis
537
538# Realtek RTL8188CU/RTL8192CU
539device    urtwn: ether, ifnet, arp, wlan, firmload
540attach    urtwn at usbdevif
541file      dev/usb/if_urtwn.c              urtwn
542
543# Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter
544device    urtw: ether, ifnet, arp, wlan
545attach    urtw at usbdevif
546file      dev/usb/if_urtw.c             urtw
547
548# Ralink Technology RT2700U/RT2800U/RT3000U
549device    run: ether, ifnet, arp, wlan, firmload
550attach    run at usbdevif
551file      dev/usb/if_run.c              run
552
553# Atheros AR9002U
554attach    athn at usbdevif with athn_usb: firmload
555file      dev/usb/if_athn_usb.c                   athn_usb            needs-flag
556
557# Realtek RTL8188SU/RTL8191SU/RTL8192SU
558device    rsu: arp, ether, firmload, ifnet, wlan
559attach    rsu at usbdevif
560file      dev/usb/if_rsu.c              rsu
561
562# KingSun/DonShine IrDA adaptors
563device    udsir: irbus, irdasir
564attach    udsir at usbifif
565file      dev/usb/udsir.c                         udsir
566
567# Araneus Alea II TRNG
568device    ualea
569attach    ualea at usbifif
570file      dev/usb/ualea.c                         ualea
571
572# Broadcom FullMAC USB wireless adapter
573attach    bwfm at usbdevif with bwfm_usb: firmload
574file      dev/usb/if_bwfm_usb.c                   bwfm_usb
575
576# Microchip USB 2.0 to I2C/UART Protocol Converter with GPIO
577device    umcpmio: hid, i2cbus, i2cexec, gpiobus
578attach  umcpmio at uhidbus
579file    dev/usb/umcpmio.c               umcpmio                       needs-flag
580file      dev/usb/umcpmio_subr.c                  umcpmio
581