Kinetis Bootloader  2.0.0
Common bootloader for Kinetis devices
hid_bootloader.h
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * o Redistributions of source code must retain the above copyright notice, this list
9  * of conditions and the following disclaimer.
10  *
11  * o Redistributions in binary form must reproduce the above copyright notice, this
12  * list of conditions and the following disclaimer in the documentation and/or
13  * other materials provided with the distribution.
14  *
15  * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
16  * contributors may be used to endorse or promote products derived from this
17  * software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #ifndef __USB_HID_MOUSE_H__
32 #define __USB_HID_MOUSE_H__ 1
33 
34 #include "utilities/fsl_rtos_abstraction.h"
35 #include "bootloader_hid_report_ids.h"
36 
37 #define USB_DEVICE_INTERRUPT_PRIORITY (4)
38 
40 enum
41 {
42  kAppRequestParam_IdleRate = 0,
43  kAppRequestParam_Protocol,
44  kAppRequestParamCount
45 };
46 
48 typedef struct _usb_hid_packetizer_info
49 {
53  uint8_t appRequestParams[kAppRequestParamCount];
56  uint32_t reportSize;
57  bl_hid_report_t report;
60 
61 typedef struct _usb_hid_generic_struct
62 {
63  usb_device_handle device_handle;
64  class_handle_t hid_handle;
65  // uint32_t buffer[2][USB_HID_GENERIC_IN_BUFFER_LENGTH>>2];
66  // uint8_t buffer_index;
67  usb_hid_packetizer_info_t hid_packet;
68  uint8_t idle_rate;
69  uint8_t speed;
70  uint8_t attach;
71  uint8_t current_configuration;
72  uint8_t current_interface_alternate_setting[USB_HID_GENERIC_INTERFACE_COUNT];
74 
75 #endif
volatile int32_t sync_object_t
Type for an interrupt synchronization object.
Definition: fsl_rtos_abstraction.h:60
State information for the USB HID packetizer.
Definition: hid_bootloader.h:48
bool didReceiveDataPhaseAbort
Whether we received a data phase abort request.
Definition: hid_bootloader.h:51
sync_object_t sendSync
Sync object used for sending packets.
Definition: hid_bootloader.h:55
sync_object_t receiveSync
Sync object used for reading packets.
Definition: hid_bootloader.h:54
bool isReceiveDataRequestRequired
Whether an interrupt out pipe receive data request is required.
Definition: hid_bootloader.h:52
Definition: hid_bootloader.h:61
Structure of a bootloader HID report.
Definition: bootloader_hid_report_ids.h:59
uint32_t reportSize
Definition: hid_bootloader.h:56
bool didReceiveFirstReport
Whether the first report has been received.
Definition: hid_bootloader.h:50