1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * f_thor.h - USB TIZEN THOR - internal gadget definitions
5 * Copyright (C) 2013 Samsung Electronics
6 * Lukasz Majewski <l.majewski@samsung.com>
12 #include <linux/compiler.h>
13 #include <linux/sizes.h>
15 /* THOR Composite Gadget */
16 #define STRING_MANUFACTURER_IDX 0
17 #define STRING_PRODUCT_IDX 1
18 #define STRING_SERIAL_IDX 2
20 /* ********************************************************** */
21 /* THOR protocol definitions */
22 /* ********************************************************** */
25 * Attribute Vendor descriptor - necessary to prevent ZLP transmission
26 * from Windows XP HOST PC
28 struct usb_cdc_attribute_vendor_descriptor {
31 __u8 bDescriptorSubType;
37 #define VER_PROTOCOL_MAJOR 5
38 #define VER_PROTOCOL_MINOR 0
49 RQT_INFO_VER_PROTOCOL = 1,
53 RQT_INIT_VER_PLATFORM,
75 struct rqt_box { /* total: 256B */
76 s32 rqt; /* request id */
77 s32 rqt_data; /* request data id */
78 s32 int_data[14]; /* int data */
79 char str_data[5][32]; /* string data */
80 char md5[32]; /* md5 checksum */
83 struct rsp_box { /* total: 128B */
84 s32 rsp; /* response id (= request id) */
85 s32 rsp_data; /* response data id */
87 s32 int_data[5]; /* int data */
88 char str_data[3][32]; /* string data */
91 struct data_rsp_box { /* total: 8B */
92 s32 ack; /* response id (= request id) */
93 s32 count; /* response data id */
102 struct usb_gadget *gadget;
103 struct usb_request *req; /* EP0 -> control responses */
105 /* IN/OUT EP's and correspoinding requests */
106 struct usb_ep *in_ep, *out_ep, *int_ep;
107 struct usb_request *in_req, *out_req;
109 /* Control flow variables */
110 unsigned char configuration_done;
111 unsigned char rxdata;
112 unsigned char txdata;
116 struct usb_function usb_function;
117 struct thor_dev *dev;
120 #define F_NAME_BUF_SIZE 32
121 #define THOR_PACKET_SIZE SZ_1M /* 1 MiB */
122 #define THOR_STORE_UNIT_SIZE SZ_32M /* 32 MiB */
123 #ifdef CONFIG_THOR_RESET_OFF
124 #define RESET_DONE 0xFFFFFFFF
126 #endif /* _USB_THOR_H_ */