[RFC PATCH 6/9] usb: dwc2: Add structure for gadget driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Jules Maselbas <jmaselbas@xxxxxxxxx>
---
 drivers/usb/dwc2/core.h | 52 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
index 56d5cbbfb..e25674558 100644
--- a/drivers/usb/dwc2/core.h
+++ b/drivers/usb/dwc2/core.h
@@ -421,6 +421,49 @@ enum usb_otg_state {
 	OTG_STATE_B_PERIPHERAL,
 };
 
+struct dwc2_ep {
+	struct usb_ep ep;
+	struct dwc2 *dwc2;
+	struct list_head queue;
+	struct dwc2_request *req;
+	char name[8];
+
+	unsigned int            size_loaded;
+	unsigned int            last_load;
+	unsigned short          fifo_size;
+	unsigned short		fifo_index;
+
+	u8 dir_in;
+	u8 epnum;
+	u8 mc;
+	u16 interval;
+
+	unsigned int            halted:1;
+	unsigned int            periodic:1;
+	unsigned int            isochronous:1;
+	unsigned int            send_zlp:1;
+	unsigned int            target_frame;
+#define TARGET_FRAME_INITIAL   0xFFFFFFFF
+	bool			frame_overrun;
+};
+
+struct dwc2_request {
+	struct usb_request req;
+	struct list_head queue;
+};
+
+/* Gadget ep0 states */
+enum dwc2_ep0_state {
+	DWC2_EP0_SETUP,
+	DWC2_EP0_DATA_IN,
+	DWC2_EP0_DATA_OUT,
+	DWC2_EP0_STATUS_IN,
+	DWC2_EP0_STATUS_OUT,
+};
+
+/* Size of control and EP0 buffers */
+#define DWC2_CTRL_BUFF_SIZE 8
+
 struct dwc2 {
 	struct device_d *dev;
 	struct usb_host host;
@@ -433,6 +476,15 @@ struct dwc2 {
 	void __iomem *regs;
 	int root_hub_devnum;
 
+	int num_eps;
+	struct dwc2_ep *eps_in[MAX_ENDPOINT];
+	struct dwc2_ep *eps_out[MAX_ENDPOINT];
+	struct usb_request *ctrl_req;
+	void *ep0_buff;
+	void *ctrl_buff;
+	enum dwc2_ep0_state ep0_state;
+	struct usb_gadget_driver *driver;
+
 	enum usb_dr_mode dr_mode;
 	enum usb_otg_state op_state;
 };
-- 
2.21.0.196.g041f5ea


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux