blob: 4c33cd30e2991a9280de30b0da1d44a5707d4fbb [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.usb;
// TODO(fxb/62024): For now these protocol definitions are manually defined to match protodefs.h.
// Usually fuchsia.<namespace>.BIND_PROTOCOL.DEVICE would map to ZX_PROTOCOL_<namespace>, but in
// this case it maps to ZX_PROTOCOL_USB_DEVICE. This is because the USB protocol is implemented by
// two kinds of drivers: those that acquire an entire device (ZX_PROTOCOL_USB_DEVICE) and those
// acquire a single interface of the device (ZX_PROTOCOL_USB_INTERFACE). ZX_PROTOCOL_USB is still
// used for the banjo protocol for both kinds of drivers.
extend uint fuchsia.BIND_PROTOCOL {
DEVICE = 34,
BUS = 35,
COMPOSITE = 36,
DCI = 37,
INTERFACE = 38,
PERIPHERAL = 39,
FUNCTION = 40,
HCI = 42,
};
extend uint fuchsia.BIND_USB_VID {
FTDI = 0x0403,
CYPRESS = 0x04b4,
ASIX = 0x0b95,
REALTEK = 0x0bda,
ATHEROS = 0x0cf3,
SIERRA = 0x1199,
RALINK = 0x148f,
GOOGLE = 0x18d1,
INTEL = 0x8087,
};
extend uint fuchsia.BIND_USB_PID {
ASIX = 0x772B,
AX88179 = 0x1790,
FTDI232R = 0x6001,
FTDI2232 = 0x6010,
FTDI232H = 0x6014,
HARRIET = 0x9302,
};
// See https://www.usb.org/defined-class-codes
extend uint fuchsia.BIND_USB_CLASS {
AUDIO = 0x01,
COMM = 0x02,
HID = 0x03,
PHYSICAL = 0x05,
IMAGE = 0x06,
PRINTER = 0x07,
MASS_STORAGE = 0x08,
HUB = 0x09,
CDC_DATA = 0x10,
SMART_CARD = 0x0b,
CONTENT_SECURITY = 0x0d,
VIDEO = 0x0e,
PERSONAL_HEALTHCARE = 0x0f,
AUDIO_VIDEO = 0x10,
BILLBOARD = 0x11,
USB_C_BRIDGE = 0x12,
DIAGNOSTIC = 0xdc,
WIRELESS = 0xe0,
MISC = 0xef,
APPLICATION_SPECIFIC = 0xfe,
VENDOR_SPECIFIC = 0xff,
};