]> git.sur5r.net Git - u-boot/blobdiff - drivers/usb/host/ohci.h
Merge branch 'master' of git://git.denx.de/u-boot-arm
[u-boot] / drivers / usb / host / ohci.h
index a547337e7f3cc50111e72cb160877430844bfa5b..9a4a2c24759111adf185be7cebdbffa0bd1f29b8 100644 (file)
@@ -7,15 +7,23 @@
  * usb-ohci.h
  */
 
-/* functions for doing board or CPU specific setup/cleanup */
-extern int usb_board_init(void);
-extern int usb_board_stop(void);
-extern int usb_board_init_fail(void);
+/*
+ * e.g. PCI controllers need this
+ */
+#ifdef CONFIG_SYS_OHCI_SWAP_REG_ACCESS
+# define ohci_readl(a) __swap_32(*((volatile u32 *)(a)))
+# define ohci_writel(a, b) (*((volatile u32 *)(b)) = __swap_32((volatile u32)a))
+#else
+# define ohci_readl(a) (*((volatile u32 *)(a)))
+# define ohci_writel(a, b) (*((volatile u32 *)(b)) = ((volatile u32)a))
+#endif /* CONFIG_SYS_OHCI_SWAP_REG_ACCESS */
 
-extern int usb_cpu_init(void);
-extern int usb_cpu_stop(void);
-extern int usb_cpu_init_fail(void);
+/* functions for doing board or CPU specific setup/cleanup */
+int usb_board_stop(void);
 
+int usb_cpu_init(void);
+int usb_cpu_stop(void);
+int usb_cpu_init_fail(void);
 
 static int cc_to_error[16] = {
 
@@ -101,7 +109,7 @@ struct ed {
        struct usb_device *usb_dev;
        void *purb;
        __u32 unused[2];
-} __attribute((aligned(16)));
+} __attribute__((aligned(16)));
 typedef struct ed ed_t;
 
 
@@ -161,7 +169,7 @@ struct td {
        __u32 data;
 
        __u32 unused2[2];
-} __attribute((aligned(32)));
+} __attribute__((aligned(32)));
 typedef struct td td_t;
 
 #define OHCI_ED_SKIP   (1 << 14)
@@ -184,7 +192,7 @@ struct ohci_hcca {
 #endif
        __u32   done_head;              /* info returned for an interrupt */
        u8              reserved_for_hc[116];
-} __attribute((aligned(256)));
+} __attribute__((aligned(256)));
 
 
 /*
@@ -196,8 +204,8 @@ struct ohci_hcca {
 
 /*
  * This is the structure of the OHCI controller's memory mapped I/O
- * region.  This is Memory Mapped I/O. You must use the readl() and
- * writel() macros defined in asm/io.h to access these!!
+ * region.  This is Memory Mapped I/O. You must use the ohci_readl() and
+ * ohci_writel() macros defined in this file to access these!!
  */
 struct ohci_regs {
        /* control and status registers */
@@ -228,7 +236,7 @@ struct ohci_regs {
                __u32   status;
                __u32   portstatus[CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS];
        } roothub;
-} __attribute((aligned(32)));
+} __attribute__((aligned(32)));
 
 /* Some EHCI controls */
 #define EHCI_USBCMD_OFF                0x20