Home | History | Annotate | Download | only in usb
History log of /src/sys/dev/usb/Makefile
RevisionDateAuthorComments
 1.13  16-Dec-2024  brad A driver for the MCP-2221 / 2221A multi-io chip. This is a USB to
UART / GPIO / I2C multi-io chip probably based upon a programmed PIC.
The end result is that simple gpio and i2c can exist on any system
that provides a USB port. This is everything from a RPI to a
Virtualbox VM.


o The UART presents itself as a umodem(4) device and pretty much works
as one would expect.

o There are 4 simple GPIO pins with multiple functions that attach to
gpio(4). Support for basic GPIO input and output exists with gpioctl,
the ADC, DAC and clock pulse functions exist as ALT functions. For
the ADC and DAC /dev/ devices are provided such that simple reads and
writes interact with the ADC and DAC. The IRQ function on pin GP1 and
bit banging the GPIO with gpiopps(4) and gpioow(4) are not really
supported. The short answer is that a spin lock is held while trying
to do USB transfers and that isn't allowed.

o There is a simple I2C engine that attaches to iic(4). This mostly
works as expected, except that a READ without STOP is not supported by
the engine which causes problems for some drivers. Most drivers do
not seem to use READ without STOP and seem to work as expected.
Support for changing the I2C speed is not supported, but nothing much
really does that.

o A userland utility called umcpmioctl(8) is provided that allows the
query of the status of the chip and allows for the query of the flash
memory and the setting of some of the flash memory parameters mostly
related to gpio. This utility interacts with a control device in
/dev/. The flash memory contents is copied to the sram on boot up of
the chip and can be used to adjust how the chip sets up the gpio pins,
among other things. Support for setting or entering the chip password
is not provided.

o A number of sysctls are provided to mess with various settings.
These are detailed in the man page.


While not perfect, the chip is reasonable, cheap, and has at least one
vendor making a breakout board. It is also one of the only ones in
this space that has enough documentation to write a driver.

Support for a related chip, the MCP-2210, which provides SPI and GPIO
may exist some day as the programming interface is very simular.
 1.12  31-Mar-2020  maxv branches: 1.12.28;
Put the ioctl definitions in a header, and install it.
 1.11  29-Jan-2020  mlelstv urio(4) was deleted
 1.10  31-Jul-2018  khorben branches: 1.10.8;
Add a port of the umb(4) driver from OpenBSD

The umb(4) driver provides support for USB MBIM (Mobile Broadband
Interface Model) devices.

MBIM devices establish connections via cellular networks such as GPRS,
UMTS, and LTE. They appear as a regular point-to-point network interface, transporting raw IP frames.

Required configuration parameters like PIN and APN have to be set with
umbctl(8), a new tool specific to this driver. The IP address is configured
automatically; the default route and DNS server information have to be set
separately.

The driver is not fully functional yet, it is therefore still marked as
experimental and disabled by default. Any help welcome to complete it!

Tested on NetBSD/amd64, with a Sierra Wireless EM7345 LTE modem on a Lenovo
ThinkPad T440s. No functional change expected otherwise.
 1.9  14-May-2006  elad branches: 1.9.154; 1.9.156;
integrate kauth.
 1.8  03-Apr-2006  scw Add a kernel driver and userland program for the Topfield TF5000PVR range
of digital video recorders popular in Europe and Australia.

These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.
 1.7  11-Dec-2005  christos branches: 1.7.4; 1.7.6; 1.7.8; 1.7.10; 1.7.12;
merge ktrace-lwp.
 1.6  15-Apr-2005  itohy branches: 1.6.2;
ukyopon(4): Kyocera AIR-EDGE PHONE driver

Close NetBSD PR #25954 in a different way.
 1.5  12-Apr-2002  heinz branches: 1.5.4; 1.5.10; 1.5.16; 1.5.18; 1.5.24;
Added some clarifying comments after my mistake.
 1.4  11-Apr-2001  jdolecek branches: 1.4.2;
Put back all header files defining ioctls
 1.3  20-Aug-2000  augustss branches: 1.3.2;
Install usbdevs.h as well.
 1.2  01-Jan-1999  augustss branches: 1.2.8; 1.2.18;
Add a Communication Class header file.
 1.1  12-Jul-1998  augustss Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers
 1.2.18.1  04-Sep-2000  augustss Pull up rev 1.4: Install usbdevs.h
(approved by thorpej)
 1.2.8.2  21-Apr-2001  bouyer Sync with HEAD
 1.2.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.2  17-Apr-2002  nathanw Catch up to -current.
 1.3.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.24.1  17-Apr-2005  tron Pull up revision 1.6 (requested by itohy in ticket #160):
ukyopon(4): Kyocera AIR-EDGE PHONE driver
Close NetBSD PR #25954 in a different way.
 1.5.18.1  29-Apr-2005  kent sync with -current
 1.5.16.1  21-Jul-2005  riz Pull up revision 1.6 (requested by itohy in ticket #1430):
ukyopon(4): Kyocera AIR-EDGE PHONE driver
Close NetBSD PR #25954 in a different way.
 1.5.10.1  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.5.4.1  26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

Provide a backport for ukyopon(4) and pullup umodem(4) updates.
 1.6.2.1  21-Jun-2006  yamt sync with head.
 1.7.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.7.10.1  19-Apr-2006  elad sync with head.
 1.7.8.1  11-Apr-2006  yamt sync with head
 1.7.6.1  22-Apr-2006  simonb Sync with head.
 1.7.4.1  09-Sep-2006  rpaulo sync with head
 1.9.156.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.156.1  10-Jun-2019  christos Sync with HEAD
 1.9.154.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.10.8.1  29-Feb-2020  ad Sync with head.
 1.12.28.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed