summaryrefslogtreecommitdiff
path: root/usb/l0_usb_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'usb/l0_usb_def.h')
-rw-r--r--usb/l0_usb_def.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/usb/l0_usb_def.h b/usb/l0_usb_def.h
new file mode 100644
index 0000000..b9d8d10
--- /dev/null
+++ b/usb/l0_usb_def.h
@@ -0,0 +1,37 @@
+#ifndef L0_USB_DEF_H
+#define L0_USB_DEF_H
+
+#include <stdint.h>
+
+class L0_USB_t {
+ private:
+ struct L0_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;
+ volatile uint32_t LPMCSR;
+ volatile uint32_t BCDR;
+ };
+
+ struct L0_USB_bufd_t {
+ volatile uint16_t ADDR_TX;
+ volatile uint16_t COUNT_TX;
+ volatile uint16_t ADDR_RX;
+ volatile uint16_t COUNT_RX;
+ };
+
+ public:
+ L0_USB_reg_t& reg;
+ L0_USB_bufd_t* bufd;
+ volatile uint16_t* buf;
+
+ L0_USB_t(uint32_t reg_addr, uint32_t buf_addr) :
+ reg(*(L0_USB_reg_t*)reg_addr),
+ bufd((L0_USB_bufd_t*)buf_addr),
+ buf((volatile uint16_t*)buf_addr) {}
+};
+
+#endif