summaryrefslogtreecommitdiff
path: root/usb/f1_usb_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'usb/f1_usb_def.h')
-rw-r--r--usb/f1_usb_def.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/usb/f1_usb_def.h b/usb/f1_usb_def.h
new file mode 100644
index 0000000..0e42f6f
--- /dev/null
+++ b/usb/f1_usb_def.h
@@ -0,0 +1,35 @@
+#ifndef F1_USB_DEF_H
+#define F1_USB_DEF_H
+
+#include <stdint.h>
+
+class F1_USB_t {
+ private:
+ struct F1_USB_reg_t {
+ volatile uint32_t EPR[16];
+ volatile uint32_t CNTR;
+ volatile uint32_t ISTR;
+ volatile uint32_t FNR;
+ volatile uint32_t DADDR;
+ volatile uint32_t BTABLE;
+ };
+
+ struct F1_USB_bufd_t {
+ volatile uint32_t ADDR_TX;
+ volatile uint32_t COUNT_TX;
+ volatile uint32_t ADDR_RX;
+ volatile uint32_t COUNT_RX;
+ };
+
+ public:
+ F1_USB_reg_t& reg;
+ F1_USB_bufd_t* bufd;
+ volatile uint32_t* buf;
+
+ F1_USB_t(uint32_t reg_addr, uint32_t buf_addr) :
+ reg(*(F1_USB_reg_t*)reg_addr),
+ bufd((F1_USB_bufd_t*)buf_addr),
+ buf((volatile uint32_t*)buf_addr) {}
+};
+
+#endif