# USB Keyboard

The unit at [drv/usb/kbd.fs] supplies a [io/kbd] structure tied to a USB
[drv/usb] keyboard.

For now, only the Boot Protocol is supported by this driver.

After USB enumeration, you can use "findkbd# ( -- ep0 )" to search in enumerated
devices for an interface of the "keyboard CSP", that is class=3 sub=1.

With that "ep0", you can then call "newusbkbd ( ep0 -- kbd )" which initialized
the keyboard by setting it in "boot protocol" mode as well as figuring out the
proper polling endpoint. The yielded "kbd" is a structure that is compatible
with the [io/kbd] API. Example initialization:

  \ Initialize USB HCI first
  usbwork \ enumerate USB
  needs drv/usb/kbd
  findkbd# newusbkbd to keyboard
  key emit
