annotate Bootloader/usbotg.h @ 308:ab4515606277

Fix whitespace Use a consistent standard - Tabs in front for indenting, spaces after for anything else. This way everything stays nice and lined up while also letting users change there prefered indent level. Most of the new files from Haata where already in this format.
author Rowan Decker <Smasher816@gmail.com>
date Sun, 08 Mar 2015 18:40:01 -0700
parents b091bb09c55f
children 66eccdd9ced5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 /* Copyright (c) 2011,2012 Simon Schubert <2@0x2c.org>.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 * Modifications by Jacob Alexander 2014 <haata@kiibohd.com>
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 * This program is free software: you can redistribute it and/or modify
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 * (at your option) any later version.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful,
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 * GNU General Public License for more details.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 */
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18 // ----- Local Includes -----
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20 #include "mchck.h"
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 #include "usb-common.h"
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 // ----- Structs -----
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 /**
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 * Hardware structures
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 */
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31 struct USB_ADDINFO_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
32 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
33 uint8_t iehost : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
34 uint8_t _rsvd0 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
35 uint8_t irqnum : 5;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
36 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38 CTASSERT_SIZE_BIT(struct USB_ADDINFO_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
39
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
40 struct USB_OTGSTAT_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
41 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
42 uint8_t avbus : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
43 uint8_t _rsvd0 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
44 uint8_t b_sess : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
45 uint8_t sessvld : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
46 uint8_t _rsvd1 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
47 uint8_t line_state : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
48 uint8_t onemsec : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
49 uint8_t idchg : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
50 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
51 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
52 CTASSERT_SIZE_BIT(struct USB_OTGSTAT_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
53
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
54 struct USB_OTGCTL_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
55 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
56 uint8_t _rsvd0 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
57 uint8_t otgen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
58 uint8_t _rsvd1 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
59 uint8_t dmlow : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
60 uint8_t dplow : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
61 uint8_t _rsvd2 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
62 uint8_t dphigh : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
63 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
64 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65 CTASSERT_SIZE_BIT(struct USB_OTGCTL_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
66
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
67 struct USB_ISTAT_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
68 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
69 uint8_t usbrst : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
70 uint8_t error : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
71 uint8_t softok : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
72 uint8_t tokdne : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
73 uint8_t sleep : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
74 uint8_t resume : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
75 uint8_t attach : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
76 uint8_t stall : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
77 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 CTASSERT_SIZE_BIT(struct USB_ISTAT_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
80
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
81 struct USB_ERRSTAT_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
82 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
83 uint8_t piderr : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
84 uint8_t crc5eof : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
85 uint8_t crc16 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
86 uint8_t dfn8 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
87 uint8_t btoerr : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
88 uint8_t dmaerr : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
89 uint8_t _rsvd0 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
90 uint8_t btserr : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
91 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93 CTASSERT_SIZE_BIT(struct USB_ERRSTAT_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
94
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 struct USB_STAT_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
96 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
97 uint8_t _rsvd0 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
98 enum usb_ep_pingpong pingpong : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
99 enum usb_ep_dir dir : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
100 uint8_t ep : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
101 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103 CTASSERT_SIZE_BIT(struct USB_STAT_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 struct USB_CTL_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
106 union {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
107 struct /* common */ {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
108 uint8_t _rsvd1 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
109 uint8_t oddrst : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
110 uint8_t resume : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
111 uint8_t _rsvd2 : 3;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
112 uint8_t se0 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
113 uint8_t jstate : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
114 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
115 struct /* host */ {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
116 uint8_t sofen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
117 uint8_t _rsvd3 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
118 uint8_t hostmodeen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
119 uint8_t reset : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
120 uint8_t token_busy : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
121 uint8_t _rsvd4 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
122 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
123 struct /* device */ {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
124 uint8_t usben : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
125 uint8_t _rsvd5 : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
126 uint8_t txd_suspend : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
127 uint8_t _rsvd6 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
128 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
129 uint8_t raw;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
130 };
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 CTASSERT_SIZE_BIT(struct USB_CTL_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
133
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
134 struct USB_ADDR_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
135 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
136 uint8_t addr : 7;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
137 uint8_t lsen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
138 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
140 CTASSERT_SIZE_BIT(struct USB_ADDR_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142 struct USB_TOKEN_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
143 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
144 uint8_t endpt : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
145 enum usb_tok_pid pid : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
146 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
147 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
148 CTASSERT_SIZE_BIT(struct USB_TOKEN_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
149
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
150 struct USB_ENDPT_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
151 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
152 uint8_t ephshk : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
153 uint8_t epstall : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
154 uint8_t eptxen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
155 uint8_t eprxen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
156 uint8_t epctldis : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
157 uint8_t _rsvd0 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
158 uint8_t retrydis : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
159 uint8_t hostwohub : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
160 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
162 CTASSERT_SIZE_BIT(struct USB_ENDPT_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
163
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
164 struct USB_USBCTRL_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
165 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
166 uint8_t _rsvd0 : 6;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
167 uint8_t pde : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
168 uint8_t susp : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
169 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
170 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
171 CTASSERT_SIZE_BIT(struct USB_USBCTRL_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173 struct USB_OBSERVE_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
174 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
175 uint8_t _rsvd0 : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
176 uint8_t dmpd : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
177 uint8_t _rsvd1 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
178 uint8_t dppd : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
179 uint8_t dppu : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
180 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
182 CTASSERT_SIZE_BIT(struct USB_OBSERVE_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
183
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
184 struct USB_CONTROL_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
185 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
186 uint8_t _rsvd0 : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
187 uint8_t dppullupnonotg : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
188 uint8_t _rsvd1 : 3;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
189 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
190 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
191 CTASSERT_SIZE_BIT(struct USB_CONTROL_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
192
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
193 struct USB_USBTRC0_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
194 UNION_STRUCT_START(8);
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
195 uint8_t usb_resume_int : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
196 uint8_t sync_det : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
197 uint8_t _rsvd0 : 3;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
198 uint8_t usbresmen : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
199 uint8_t _rsvd1 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
200 uint8_t usbreset : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
201 UNION_STRUCT_END;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
202 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
203 CTASSERT_SIZE_BIT(struct USB_USBTRC0_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
204
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
205 struct USB_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
206 uint8_t perid;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
207 uint8_t _pad0[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
208 uint8_t idcomp;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
209 uint8_t _pad1[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
210 uint8_t rev;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
211 uint8_t _pad2[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
212 struct USB_ADDINFO_t addinfo;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
213 uint8_t _pad3[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
214 struct USB_OTGSTAT_t otgistat;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
215 uint8_t _pad4[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
216 struct USB_OTGSTAT_t otgicr;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
217 uint8_t _pad5[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
218 struct USB_OTGSTAT_t otgstat;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
219 uint8_t _pad6[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
220 struct USB_OTGCTL_t otgctl;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
221 uint8_t _pad7[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
222 uint8_t _pad8[0x80 - 0x20];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
223 struct USB_ISTAT_t istat;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
224 uint8_t _pad9[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
225 struct USB_ISTAT_t inten;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
226 uint8_t _pad10[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
227 struct USB_ERRSTAT_t errstat;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
228 uint8_t _pad11[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
229 struct USB_ERRSTAT_t erren;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
230 uint8_t _pad12[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
231 struct USB_STAT_t stat;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
232 uint8_t _pad13[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
233 struct USB_CTL_t ctl;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
234 uint8_t _pad14[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
235 struct USB_ADDR_t addr;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
236 uint8_t _pad15[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
237 uint8_t bdtpage1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
238 uint8_t _pad16[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
239 uint8_t frmnuml;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
240 uint8_t _pad17[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
241 struct {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
242 uint8_t frmnumh : 3;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
243 uint8_t _rsvd0 : 5;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
244 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
245 uint8_t _pad18[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
246 struct USB_TOKEN_t token;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
247 uint8_t _pad19[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
248 uint8_t softhld;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
249 uint8_t _pad20[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
250 uint8_t bdtpage2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
251 uint8_t _pad21[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
252 uint8_t bdtpage3;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
253 uint8_t _pad22[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
254 uint8_t _pad23[0xc0 - 0xb8];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
255 struct {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
256 struct USB_ENDPT_t;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
257 uint8_t _pad24[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
258 } endpt[16];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
259 struct USB_USBCTRL_t usbctrl;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
260 uint8_t _pad25[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
261 struct USB_OBSERVE_t observe;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
262 uint8_t _pad26[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
263 struct USB_CONTROL_t control;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
264 uint8_t _pad27[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
265 struct USB_USBTRC0_t usbtrc0;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
266 uint8_t _pad28[3];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
267 uint8_t _pad29[4];
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
268 uint8_t usbfrmadjust;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
269 uint8_t _pad30[3];
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
270 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
271 CTASSERT_SIZE_BYTE(struct USB_t, 0x118);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
272
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
273 struct USB_BD_t {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
274 struct USB_BD_BITS_t {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
275 union {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
276 struct {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
277 uint32_t _rsvd0 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
278 uint32_t stall : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
279 uint32_t dts : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
280 uint32_t ninc : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
281 uint32_t keep : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
282 enum usb_data01 data01 : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
283 uint32_t own : 1;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
284 uint32_t _rsvd1 : 8;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
285 uint32_t bc : 10;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
286 uint32_t _rsvd2 : 6;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
287 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
288 struct /* processor */ {
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
289 uint32_t _rsvd5 : 2;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
290 enum usb_tok_pid tok_pid : 4;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
291 uint32_t _rsvd6 : 26;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
292 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
293 uint32_t raw;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
294 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
295 };
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 193
diff changeset
296 void *addr;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
297 };
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
298 CTASSERT_SIZE_BYTE(struct USB_BD_t, 8);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
299
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
300 extern volatile struct USB_t USB0;
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
301