summaryrefslogtreecommitdiff
path: root/include/g_dnl.h (plain)
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
35typedef int (*g_dnl_bind_callback_f)(struct usb_configuration *);
36
37/* used in Gadget downloader callback linker list */
38struct g_dnl_bind_callback {
39 const char *usb_function_name;
40 g_dnl_bind_callback_f fptr;
41};
42
43int g_dnl_bind_fixup(struct usb_device_descriptor *, const char *);
44int g_dnl_board_usb_cable_connected(void);
45int g_dnl_register(const char *s);
46void g_dnl_unregister(void);
47void g_dnl_set_serialnumber(char *);
48
49bool g_dnl_detach(void);
50void g_dnl_trigger_detach(void);
51void g_dnl_clear_detach(void);
52char * get_usid_string(void);
53
54#endif /* __G_DOWNLOAD_H_ */
55