Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / drivers / usb / gadget / f_thor.h
diff --git a/qemu/roms/u-boot/drivers/usb/gadget/f_thor.h b/qemu/roms/u-boot/drivers/usb/gadget/f_thor.h
new file mode 100644 (file)
index 0000000..833a9d2
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * f_thor.h - USB TIZEN THOR - internal gadget definitions
+ *
+ * Copyright (C) 2013 Samsung Electronics
+ * Lukasz Majewski  <l.majewski@samsung.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef _USB_THOR_H_
+#define _USB_THOR_H_
+
+#include <linux/compiler.h>
+#include <linux/sizes.h>
+
+/* THOR Composite Gadget */
+#define STRING_MANUFACTURER_IDX        0
+#define STRING_PRODUCT_IDX             1
+#define STRING_SERIAL_IDX              2
+
+/* ********************************************************** */
+/*                   THOR protocol definitions               */
+/* ********************************************************** */
+
+/*
+ * Attribute Vendor descriptor - necessary to prevent ZLP transmission
+ * from Windows XP HOST PC
+ */
+struct usb_cdc_attribute_vendor_descriptor {
+       __u8 bLength;
+       __u8 bDescriptorType;
+       __u8 bDescriptorSubType;
+       __u16 DAUType;
+       __u16 DAULength;
+       __u8 DAUValue;
+} __packed;
+
+#define VER_PROTOCOL_MAJOR     4
+#define VER_PROTOCOL_MINOR     0
+
+enum rqt {
+       RQT_INFO = 200,
+       RQT_CMD,
+       RQT_DL,
+       RQT_UL,
+};
+
+enum rqt_data {
+       /* RQT_INFO */
+       RQT_INFO_VER_PROTOCOL = 1,
+       RQT_INIT_VER_HW,
+       RQT_INIT_VER_BOOT,
+       RQT_INIT_VER_KERNEL,
+       RQT_INIT_VER_PLATFORM,
+       RQT_INIT_VER_CSC,
+
+       /* RQT_CMD */
+       RQT_CMD_REBOOT = 1,
+       RQT_CMD_POWEROFF,
+       RQT_CMD_EFSCLEAR,
+
+       /* RQT_DL */
+       RQT_DL_INIT = 1,
+       RQT_DL_FILE_INFO,
+       RQT_DL_FILE_START,
+       RQT_DL_FILE_END,
+       RQT_DL_EXIT,
+
+       /* RQT_UL */
+       RQT_UL_INIT = 1,
+       RQT_UL_START,
+       RQT_UL_END,
+       RQT_UL_EXIT,
+};
+
+struct rqt_box {               /* total: 256B */
+       s32 rqt;                /* request id */
+       s32 rqt_data;           /* request data id */
+       s32 int_data[14];       /* int data */
+       char str_data[5][32];   /* string data */
+       char md5[32];           /* md5 checksum */
+} __packed;
+
+struct rsp_box {               /* total: 128B */
+       s32 rsp;                /* response id (= request id) */
+       s32 rsp_data;           /* response data id */
+       s32 ack;                /* ack */
+       s32 int_data[5];        /* int data */
+       char str_data[3][32];   /* string data */
+} __packed;
+
+struct data_rsp_box {          /* total: 8B */
+       s32 ack;                /* response id (= request id) */
+       s32 count;              /* response data id */
+} __packed;
+
+enum {
+       FILE_TYPE_NORMAL,
+       FILE_TYPE_PIT,
+};
+
+struct thor_dev {
+       struct usb_gadget *gadget;
+       struct usb_request *req; /* EP0 -> control responses */
+
+       /* IN/OUT EP's and correspoinding requests */
+       struct usb_ep *in_ep, *out_ep, *int_ep;
+       struct usb_request *in_req, *out_req;
+
+       /* Control flow variables */
+       unsigned char configuration_done;
+       unsigned char rxdata;
+       unsigned char txdata;
+};
+
+struct f_thor {
+       struct usb_function usb_function;
+       struct thor_dev *dev;
+};
+
+#define F_NAME_BUF_SIZE 32
+#define THOR_PACKET_SIZE SZ_1M      /* 1 MiB */
+#define THOR_STORE_UNIT_SIZE SZ_32M /* 32 MiB */
+#endif /* _USB_THOR_H_ */