freebsd-dev/sys/dev/usb
Andriy Gapon c178a7e73c cp2112: driver for the namesake GPIO and I2C master gadget
Documentation:
- CP2112 Datasheet
  https://www.silabs.com/documents/public/data-sheets/cp2112-datasheet.pdf
- AN495: CP2112 Interface Specification
  https://www.silabs.com/documents/public/application-notes/an495-cp2112-interface-specification.pdf
- CP2112 Errata
  https://www.silabs.com/documents/public/errata/cp2112-errata.pdf

The logic is implemented as three sub-drivers.
The parent driver claims the USB device and creates two child devices.
One acts as a GPIO controller and the other is an I2C controller.

Tested with CP2112 revision F02.
Both features seem to work.
HTU21 sensor was used as an I2C slave.

Reviewed by:	adrian, hselasky
MFC after:	2 weeks
Relnotes:	maybe
Differential Revision: https://reviews.freebsd.org/D25359
2020-08-06 13:41:42 +00:00
..
controller Handle Raspberry Pi 4 xhci firmware loading. 2020-08-03 10:19:50 +00:00
gadget Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
input usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
misc cp2112: driver for the namesake GPIO and I2C master gadget 2020-08-06 13:41:42 +00:00
net clean up whitespace... 2020-07-25 18:09:04 +00:00
quirk
serial Add new USB device ID to u3g driver. 2020-03-17 09:12:47 +00:00
storage usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
template Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
video Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
wlan [rsu] Update wme ie API use. 2020-06-16 01:11:40 +00:00
ufm_ioctl.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
uftdiio.h
uled_ioctl.h
usb_bus.h Make USB statistics per device instead of per bus. 2019-12-27 20:29:13 +00:00
usb_busdma.c
usb_busdma.h
usb_cdc.h
usb_controller.h
usb_core.c
usb_core.h
usb_debug.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
usb_debug.h
usb_dev.c usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_dev.h
usb_device.c usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_device.h Refresh the USB device strings when a USB device is re-enumerated. 2020-05-11 20:55:04 +00:00
usb_dynamic.c
usb_dynamic.h
usb_endian.h
usb_error.c
usb_fdt_support.c
usb_fdt_support.h
usb_freebsd_loader.h usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_freebsd.h usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_generic.c usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_generic.h
usb_handle_request.c
usb_hid.c USB HID descriptors may push/pop the current state to allow 2020-06-05 07:57:16 +00:00
usb_hub_acpi.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
usb_hub_private.h
usb_hub.c Refresh the USB device strings when a USB device is re-enumerated. 2020-05-11 20:55:04 +00:00
usb_hub.h
usb_if.m
usb_ioctl.h
usb_lookup.c
usb_mbuf.c usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_mbuf.h
usb_msctest.c
usb_msctest.h
usb_parse.c
usb_pci.h
usb_pf.c
usb_pf.h
usb_process.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many) 2020-02-15 18:52:12 +00:00
usb_process.h
usb_request.c
usb_request.h
usb_transfer.c usb(4): Stop checking for failures from malloc(M_WAITOK). 2020-07-22 14:32:47 +00:00
usb_transfer.h
usb_util.c
usb_util.h
usb.h Correctly implement support for remote wakeup for USB 3.0 device. 2020-03-19 09:15:59 +00:00
usbdevs Add new USB ID. 2020-08-06 13:25:04 +00:00
usbdi_util.h
usbdi.h Implement helper function, usbd_get_max_frame_length(), which allows kernel 2020-05-28 08:38:25 +00:00
usbhid.h usbhid: add several missing usages from Digitizer page 2020-05-06 15:24:31 +00:00