linux/include/linux/usb/irda.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * USB IrDA Bridge Device Definition
 */

#ifndef __LINUX_USB_IRDA_H
#define __LINUX_USB_IRDA_H

/* This device should use Application-specific class */

#define USB_SUBCLASS_IRDA

/*-------------------------------------------------------------------------*/

/* Class-Specific requests (bRequest field) */

#define USB_REQ_CS_IRDA_RECEIVING
#define USB_REQ_CS_IRDA_CHECK_MEDIA_BUSY
#define USB_REQ_CS_IRDA_RATE_SNIFF
#define USB_REQ_CS_IRDA_UNICAST_LIST
#define USB_REQ_CS_IRDA_GET_CLASS_DESC

/*-------------------------------------------------------------------------*/

/* Class-Specific descriptor */

#define USB_DT_CS_IRDA

/*-------------------------------------------------------------------------*/

/* Data sizes */

#define USB_IRDA_DS_2048
#define USB_IRDA_DS_1024
#define USB_IRDA_DS_512
#define USB_IRDA_DS_256
#define USB_IRDA_DS_128
#define USB_IRDA_DS_64

/* Window sizes */

#define USB_IRDA_WS_7
#define USB_IRDA_WS_6
#define USB_IRDA_WS_5
#define USB_IRDA_WS_4
#define USB_IRDA_WS_3
#define USB_IRDA_WS_2
#define USB_IRDA_WS_1

/* Min turnaround times in usecs */

#define USB_IRDA_MTT_0
#define USB_IRDA_MTT_10
#define USB_IRDA_MTT_50
#define USB_IRDA_MTT_100
#define USB_IRDA_MTT_500
#define USB_IRDA_MTT_1000
#define USB_IRDA_MTT_5000
#define USB_IRDA_MTT_10000

/* Baud rates */

#define USB_IRDA_BR_4000000
#define USB_IRDA_BR_1152000
#define USB_IRDA_BR_576000
#define USB_IRDA_BR_115200
#define USB_IRDA_BR_57600
#define USB_IRDA_BR_38400
#define USB_IRDA_BR_19200
#define USB_IRDA_BR_9600
#define USB_IRDA_BR_2400

/* Additional BOFs */

#define USB_IRDA_AB_0
#define USB_IRDA_AB_1
#define USB_IRDA_AB_2
#define USB_IRDA_AB_3
#define USB_IRDA_AB_6
#define USB_IRDA_AB_12
#define USB_IRDA_AB_24
#define USB_IRDA_AB_48

/* IRDA Rate Sniff */

#define USB_IRDA_RATE_SNIFF

/*-------------------------------------------------------------------------*/

struct usb_irda_cs_descriptor {} __attribute__ ((packed));

/*-------------------------------------------------------------------------*/

/* Data Format */

#define USB_IRDA_STATUS_MEDIA_BUSY

/* The following is a 4-bit value used for both
 * inbound and outbound headers:
 *
 * 0 - speed ignored
 * 1 - 2400 bps
 * 2 - 9600 bps
 * 3 - 19200 bps
 * 4 - 38400 bps
 * 5 - 57600 bps
 * 6 - 115200 bps
 * 7 - 576000 bps
 * 8 - 1.152 Mbps
 * 9 - 4 Mbps
 * 10..15 - Reserved
 */
#define USB_IRDA_STATUS_LINK_SPEED

#define USB_IRDA_LS_NO_CHANGE
#define USB_IRDA_LS_2400
#define USB_IRDA_LS_9600
#define USB_IRDA_LS_19200
#define USB_IRDA_LS_38400
#define USB_IRDA_LS_57600
#define USB_IRDA_LS_115200
#define USB_IRDA_LS_576000
#define USB_IRDA_LS_1152000
#define USB_IRDA_LS_4000000

/* The following is a 4-bit value used only for
 * outbound header:
 *
 * 0 - No change (BOF ignored)
 * 1 - 48 BOFs
 * 2 - 24 BOFs
 * 3 - 12 BOFs
 * 4 - 6 BOFs
 * 5 - 3 BOFs
 * 6 - 2 BOFs
 * 7 - 1 BOFs
 * 8 - 0 BOFs
 * 9..15 - Reserved
 */
#define USB_IRDA_EXTRA_BOFS

struct usb_irda_inbound_header {};

struct usb_irda_outbound_header {};

#endif /* __LINUX_USB_IRDA_H */