usb: dwc2: Simplify wait_for_chhltd(), remove ignore_ack
[oweals/u-boot.git] / drivers / usb / host / ohci.h
index f52b4c1bb535e60d92be11528ff0fdef202e46d4..9b0c4a2bd91e86baf2716cf070b607527ab16ac5 100644 (file)
@@ -18,7 +18,7 @@
 # define ohci_writel(a, b) (*((volatile u32 *)(b)) = ((volatile u32)a))
 #endif /* CONFIG_SYS_OHCI_SWAP_REG_ACCESS */
 
-#if defined CONFIG_DM_USB && ARCH_DMA_MINALIGN > 16
+#if ARCH_DMA_MINALIGN > 16
 #define ED_ALIGNMENT ARCH_DMA_MINALIGN
 #else
 #define ED_ALIGNMENT 16
@@ -367,10 +367,13 @@ typedef struct
 
 #define NUM_TD 64              /* we need more TDs than EDs */
 
+#define NUM_INT_DEVS 8         /* num of ohci_dev structs for int endpoints */
+
 typedef struct ohci_device {
        ed_t ed[NUM_EDS] __aligned(ED_ALIGNMENT);
        td_t tds[NUM_TD] __aligned(TD_ALIGNMENT);
        int ed_cnt;
+       int devnum;
 } ohci_dev_t;
 
 /*
@@ -384,6 +387,7 @@ typedef struct ohci_device {
 typedef struct ohci {
        /* this allocates EDs for all possible endpoints */
        struct ohci_device ohci_dev __aligned(TD_ALIGNMENT);
+       struct ohci_device int_dev[NUM_INT_DEVS] __aligned(TD_ALIGNMENT);
        struct ohci_hcca *hcca;         /* hcca */
        /*dma_addr_t hcca_dma;*/
 
@@ -405,3 +409,10 @@ typedef struct ohci {
 
        const char      *slot_name;
 } ohci_t;
+
+#ifdef CONFIG_DM_USB
+extern struct dm_usb_ops ohci_usb_ops;
+
+int ohci_register(struct udevice *dev, struct ohci_regs *regs);
+int ohci_deregister(struct udevice *dev);
+#endif