blob: edf7090899309058649fa0db0f93b32fc2bfe6a7
1 | /* |
2 | * Copyright (C) 2012 Samsung Electronics |
3 | * Lukasz Majewski <l.majewski@samsung.com> |
4 | * |
5 | * SPDX-License-Identifier: GPL-2.0+ |
6 | */ |
7 | |
8 | #ifndef __G_DOWNLOAD_H_ |
9 | #define __G_DOWNLOAD_H_ |
10 | |
11 | #include <linux/usb/ch9.h> |
12 | #include <linux/usb/gadget.h> |
13 | #include <linux/usb/composite.h> |
14 | #include <linker_lists.h> |
15 | |
16 | #define CONFIG_USB_GADGET_VBUS_DRAW 500 |
17 | #define CONFIG_USB_FASTBOOT_BUF_SIZE 0xB0000000 |
18 | #define CONFIG_USB_FASTBOOT_BUF_ADDR 0x10200000 |
19 | #define CONFIG_G_DNL_MANUFACTURER 0123 |
20 | #define CONFIG_G_DNL_PRODUCT_NUM 1234 |
21 | #define USID_KEY "usid" |
22 | |
23 | /* |
24 | * @usb_fname: unescaped USB function name |
25 | * @callback_ptr: bind callback, one per function name |
26 | */ |
27 | #define DECLARE_GADGET_BIND_CALLBACK(usb_fname, callback_ptr) \ |
28 | ll_entry_declare(struct g_dnl_bind_callback, \ |
29 | __usb_function_name_##usb_fname, \ |
30 | g_dnl_bind_callbacks) = { \ |
31 | .usb_function_name = #usb_fname, \ |
32 | .fptr = callback_ptr \ |
33 | } |
34 | |
35 | typedef int (*g_dnl_bind_callback_f)(struct usb_configuration *); |
36 | |
37 | /* used in Gadget downloader callback linker list */ |
38 | struct g_dnl_bind_callback { |
39 | const char *usb_function_name; |
40 | g_dnl_bind_callback_f fptr; |
41 | }; |
42 | |
43 | int g_dnl_bind_fixup(struct usb_device_descriptor *, const char *); |
44 | int g_dnl_board_usb_cable_connected(void); |
45 | int g_dnl_register(const char *s); |
46 | void g_dnl_unregister(void); |
47 | void g_dnl_set_serialnumber(char *); |
48 | |
49 | bool g_dnl_detach(void); |
50 | void g_dnl_trigger_detach(void); |
51 | void g_dnl_clear_detach(void); |
52 | char * get_usid_string(void); |
53 | |
54 | #endif /* __G_DOWNLOAD_H_ */ |
55 |