mirror of
https://github.com/DrHo1y/orangepi-build.git
synced 2026-03-28 03:26:43 +07:00
81 lines
2.0 KiB
C
81 lines
2.0 KiB
C
/*
|
|
* Broadcom USB/HSIC framing
|
|
* Software-specific framing definitions shared between host and device
|
|
*
|
|
* $Copyright Open 2012 Broadcom Corporation$
|
|
*
|
|
* $Id: bcmusb.h 281591 2012-09-02 18:43:02Z sgsiener $
|
|
*/
|
|
|
|
#ifndef _bcmusb_h_
|
|
#define _bcmusb_h_
|
|
|
|
/*
|
|
* Software-defined USB frame header
|
|
*/
|
|
|
|
#ifdef USB_FRAME_HEADER
|
|
#define USBF_HEADER_LEN 16
|
|
#else
|
|
#define USBF_HEADER_LEN 0
|
|
#endif
|
|
|
|
#ifdef USBF_CKSUM_OVER_FRAME
|
|
#define USBF_DEF_CKSUM_LEN 0
|
|
#else
|
|
#define USBF_DEF_CKSUM_LEN USBF_HEADER_LEN
|
|
#endif
|
|
|
|
/* Current protocol version */
|
|
#define USBF_PROT_VERSION 1
|
|
|
|
/* ----- first 32-bit word ----- */
|
|
|
|
/* 4-bit version field */
|
|
#define USBF_VER_MASK 0x0000000f
|
|
|
|
/* 8-bit flags field */
|
|
#define USBF_FLAGS_MASK 0x00000ff0
|
|
#define USBF_FLAGS_SHIFT 4
|
|
|
|
/* flags field definitions */
|
|
#define USBF_FLAGS_TIMESTAMPED 0x01 /* frame header includes timestamp */
|
|
#define USBF_FLAGS_FRAME_EVENT 0x02 /* set when frame contains an Event indication */
|
|
#define USBF_FLAGS_FRAME_CKSUM 0x04 /* set when cksum is over entire frame */
|
|
|
|
/* 3-bit channel identifier field */
|
|
#define USBF_CHAN_MASK 0x00007000
|
|
#define USBF_CHAN_SHIFT 12
|
|
|
|
#define USBF_CHAN_CONTROL 0
|
|
#define USBF_CHAN_INTERRUPT 1
|
|
#define USBF_CHAN_DATAEVENT 2
|
|
|
|
/* used by host & device to disambiguate frames with this header from ones without */
|
|
#define USBF_TAG 0x00008000 /* bit won't appear in bdc/ioctl header */
|
|
|
|
/* 16-bit checksum */
|
|
#define USBF_CHECKSUM_MASK 0xffff0000 /* checksum mask */
|
|
#define USBF_CHECKSUM_SHIFT 16
|
|
|
|
/* ----- second 32-bit word ----- */
|
|
|
|
/* 16-bit length */
|
|
#define USBF_LENGTH_MASK 0x0000ffff /* length mask */
|
|
|
|
/* 16-bit sequence number */
|
|
#define USBF_SEQNUM_MASK 0xffff0000 /* sequence number mask */
|
|
#define USBF_SEQSUM_SHIFT 16
|
|
|
|
/* ----- third 32-bit word ----- */
|
|
|
|
/* 32-bit timestamp */
|
|
#define USBF_TIMESTAMP_MASK 0xffffffff /* timestamp value mask */
|
|
|
|
/* ----- fourth 32-bit word ----- */
|
|
|
|
/* reserve 32 bits for future use */
|
|
#define USBF_RESERVED_MASK 0xffffffff /* reserved for future use mask */
|
|
|
|
#endif /* _bcmusb_h_ */
|