blob: 5e2ebb744c48b9014c231e4acbea21c6237c41a9 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#ifndef _USB_CONSTS_H_
#define _USB_CONSTS_H_
// SETUP requests
typedef enum usb_setup_req {
kUsbSetupReqGetStatus = 0,
kUsbSetupReqClearFeature = 1,
kUsbSetupReqSetFeature = 3,
kUsbSetupReqSetAddress = 5,
kUsbSetupReqGetDescriptor = 6,
kUsbSetupReqSetDescriptor = 7,
kUsbSetupReqGetConfiguration = 8,
kUsbSetupReqSetConfiguration = 9,
kUsbSetupReqGetInterface = 10,
kUsbSetupReqSetInterface = 11,
kUsbSetupReqSynchFrame = 12
} usb_setup_req_t;
typedef enum usb_req_type { // bmRequestType
kUsbReqTypeRecipientMask = 0x1f,
kUsbReqTypeDevice = 0,
kUsbReqTypeInterface = 1,
kUsbReqTypeEndpoint = 2,
kUsbReqTypeOther = 3,
kUsbReqTypeTypeMask = 0x60,
KUsbReqTypeStandard = 0,
KUsbReqTypeClass = 0x20,
KUsbReqTypeVendor = 0x40,
KUsbReqTypeReserved = 0x60,
kUsbReqTypeDirMask = 0x80,
kUsbReqTypeDirH2D = 0x00,
kUsbReqTypeDirD2H = 0x80,
} usb_req_type_t;
typedef enum usb_feature_req {
kUsbFeatureEndpointHalt = 0, // recipient is endpoint
kUsbFeatureDeviceRemoteWakeup = 1, // recipient is device
kUsbFeatureTestMode = 2, // recipient is device
kUsbFeatureBHnpEnable = 3, // recipient is device only if OTG
kUsbFeatureAHnpSupport = 4, // recipient is device only if OTG
kUsbFeatureAAltHnpSupport = 5 // recipient is device only if OTG
} usb_feature_req_t;
typedef enum usb_status {
kUsbStatusSelfPowered = 1, // Device status request
kUsbStatusRemWake = 2, // Device status request
kUsbStatusHalted = 1 // Endpoint status request
} usb_status_t;
#endif // _USB_CONSTS_H_