Correct register defines. I had to look at the disassembly to spot this bug. orz
authorranma <ranma@a1c6a512-1295-4272-9138-f99709370657>
Thu, 13 May 2010 14:07:59 +0000 (13 14:07 +0000)
committerranma <ranma@a1c6a512-1295-4272-9138-f99709370657>
Thu, 13 May 2010 14:07:59 +0000 (13 14:07 +0000)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25996 a1c6a512-1295-4272-9138-f99709370657

firmware/target/arm/as3525/usb-drv-as3525.c

index 496d434..7eb84cd 100644 (file)
 
 
 /* 4 input endpoints */
-#define USB_IEP_CTRL(i)     *((volatile unsigned long*) USB_BASE + 0x0000 + (i*0x20))
-#define USB_IEP_STS(i)      *((volatile unsigned long*) USB_BASE + 0x0004 + (i*0x20))
-#define USB_IEP_TXFSIZE(i)  *((volatile unsigned long*) USB_BASE + 0x0008 + (i*0x20))
-#define USB_IEP_MPS(i)      *((volatile unsigned long*) USB_BASE + 0x000C + (i*0x20))
-#define USB_IEP_DESC_PTR(i) *((volatile unsigned long*) USB_BASE + 0x0014 + (i*0x20))
-#define USB_IEP_STS_MASK(i) *((volatile unsigned long*) USB_BASE + 0x0018 + (i*0x20))
+#define USB_IEP_CTRL(i)     *((volatile unsigned long*) (USB_BASE + 0x0000 + (i*0x20)))
+#define USB_IEP_STS(i)      *((volatile unsigned long*) (USB_BASE + 0x0004 + (i*0x20)))
+#define USB_IEP_TXFSIZE(i)  *((volatile unsigned long*) (USB_BASE + 0x0008 + (i*0x20)))
+#define USB_IEP_MPS(i)      *((volatile unsigned long*) (USB_BASE + 0x000C + (i*0x20)))
+#define USB_IEP_DESC_PTR(i) *((volatile unsigned long*) (USB_BASE + 0x0014 + (i*0x20)))
+#define USB_IEP_STS_MASK(i) *((volatile unsigned long*) (USB_BASE + 0x0018 + (i*0x20)))
 
 /* 4 output endpoints */
-#define USB_OEP_CTRL(i)     *((volatile unsigned long*) USB_BASE + 0x0200 + (i*0x20))
-#define USB_OEP_STS(i)      *((volatile unsigned long*) USB_BASE + 0x0204 + (i*0x20))
-#define USB_OEP_RXFR(i)     *((volatile unsigned long*) USB_BASE + 0x0208 + (i*0x20))
-#define USB_OEP_MPS(i)      *((volatile unsigned long*) USB_BASE + 0x020C + (i*0x20))
-#define USB_OEP_SUP_PTR(i)  *((volatile unsigned long*) USB_BASE + 0x0210 + (i*0x20))
-#define USB_OEP_DESC_PTR(i) *((volatile unsigned long*) USB_BASE + 0x0214 + (i*0x20))
-#define USB_OEP_STS_MASK(i) *((volatile unsigned long*) USB_BASE + 0x0218 + (i*0x20))
-
-#define USB_DEV_CFG             *((volatile unsigned long*) USB_BASE + 0x0400)
-#define USB_DEV_CTRL            *((volatile unsigned long*) USB_BASE + 0x0404)
-#define USB_DEV_STS             *((volatile unsigned long*) USB_BASE + 0x0408)
-#define USB_DEV_INTR            *((volatile unsigned long*) USB_BASE + 0x040C)
-#define USB_DEV_INTR_MASK       *((volatile unsigned long*) USB_BASE + 0x0410)
-#define USB_DEV_EP_INTR         *((volatile unsigned long*) USB_BASE + 0x0414)
-#define USB_DEV_EP_INTR_MASK    *((volatile unsigned long*) USB_BASE + 0x0418)
-
-#define USB_PHY_EP0_INFO        *((volatile unsigned long*) USB_BASE + 0x0504)
-#define USB_PHY_EP1_INFO        *((volatile unsigned long*) USB_BASE + 0x0508)
-#define USB_PHY_EP2_INFO        *((volatile unsigned long*) USB_BASE + 0x050C)
-#define USB_PHY_EP3_INFO        *((volatile unsigned long*) USB_BASE + 0x0510)
-#define USB_PHY_EP4_INFO        *((volatile unsigned long*) USB_BASE + 0x0514)
-#define USB_PHY_EP5_INFO        *((volatile unsigned long*) USB_BASE + 0x0518)
+#define USB_OEP_CTRL(i)     *((volatile unsigned long*) (USB_BASE + 0x0200 + (i*0x20)))
+#define USB_OEP_STS(i)      *((volatile unsigned long*) (USB_BASE + 0x0204 + (i*0x20)))
+#define USB_OEP_RXFR(i)     *((volatile unsigned long*) (USB_BASE + 0x0208 + (i*0x20)))
+#define USB_OEP_MPS(i)      *((volatile unsigned long*) (USB_BASE + 0x020C + (i*0x20)))
+#define USB_OEP_SUP_PTR(i)  *((volatile unsigned long*) (USB_BASE + 0x0210 + (i*0x20)))
+#define USB_OEP_DESC_PTR(i) *((volatile unsigned long*) (USB_BASE + 0x0214 + (i*0x20)))
+#define USB_OEP_STS_MASK(i) *((volatile unsigned long*) (USB_BASE + 0x0218 + (i*0x20)))
+
+#define USB_DEV_CFG             *((volatile unsigned long*) (USB_BASE + 0x0400))
+#define USB_DEV_CTRL            *((volatile unsigned long*) (USB_BASE + 0x0404))
+#define USB_DEV_STS             *((volatile unsigned long*) (USB_BASE + 0x0408))
+#define USB_DEV_INTR            *((volatile unsigned long*) (USB_BASE + 0x040C))
+#define USB_DEV_INTR_MASK       *((volatile unsigned long*) (USB_BASE + 0x0410))
+#define USB_DEV_EP_INTR         *((volatile unsigned long*) (USB_BASE + 0x0414))
+#define USB_DEV_EP_INTR_MASK    *((volatile unsigned long*) (USB_BASE + 0x0418))
+
+#define USB_PHY_EP0_INFO        *((volatile unsigned long*) (USB_BASE + 0x0504))
+#define USB_PHY_EP1_INFO        *((volatile unsigned long*) (USB_BASE + 0x0508))
+#define USB_PHY_EP2_INFO        *((volatile unsigned long*) (USB_BASE + 0x050C))
+#define USB_PHY_EP3_INFO        *((volatile unsigned long*) (USB_BASE + 0x0510))
+#define USB_PHY_EP4_INFO        *((volatile unsigned long*) (USB_BASE + 0x0514))
+#define USB_PHY_EP5_INFO        *((volatile unsigned long*) (USB_BASE + 0x0518))
 
 /* 4 channels */
-#define USB_HOST_CH_SPLT(i)     *((volatile unsigned long*) USB_BASE + 0x1000 + (i*0x20))
-#define USB_HOST_CH_STS(i)      *((volatile unsigned long*) USB_BASE + 0x1004 + (i*0x20))
-#define USB_HOST_CH_TXFSIZE(i)  *((volatile unsigned long*) USB_BASE + 0x1008 + (i*0x20))
-#define USB_HOST_CH_REQ(i)      *((volatile unsigned long*) USB_BASE + 0x100C + (i*0x20))
-#define USB_HOST_CH_PER_INFO(i) *((volatile unsigned long*) USB_BASE + 0x1010 + (i*0x20))
-#define USB_HOST_CH_DESC_PTR(i) *((volatile unsigned long*) USB_BASE + 0x1014 + (i*0x20))
-#define USB_HOST_CH_STS_MASK(i) *((volatile unsigned long*) USB_BASE + 0x1018 + (i*0x20))
-
-#define USB_HOST_CFG            *((volatile unsigned long*) USB_BASE + 0x1400)
-#define USB_HOST_CTRL           *((volatile unsigned long*) USB_BASE + 0x1404)
-#define USB_HOST_INTR           *((volatile unsigned long*) USB_BASE + 0x140C)
-#define USB_HOST_INTR_MASK      *((volatile unsigned long*) USB_BASE + 0x1410)
-#define USB_HOST_CH_INTR        *((volatile unsigned long*) USB_BASE + 0x1414)
-#define USB_HOST_CH_INTR_MASK   *((volatile unsigned long*) USB_BASE + 0x1418)
-#define USB_HOST_FRAME_INT      *((volatile unsigned long*) USB_BASE + 0x141C)
-#define USB_HOST_FRAME_REM      *((volatile unsigned long*) USB_BASE + 0x1420)
-#define USB_HOST_FRAME_NUM      *((volatile unsigned long*) USB_BASE + 0x1424)
-
-#define USB_HOST_PORT0_CTRL_STS *((volatile unsigned long*) USB_BASE + 0x1500)
-
-#define USB_OTG_CSR             *((volatile unsigned long*) USB_BASE + 0x2000)
-#define USB_I2C_CSR             *((volatile unsigned long*) USB_BASE + 0x2004)
-#define USB_GPIO_CSR            *((volatile unsigned long*) USB_BASE + 0x2008)
-#define USB_SNPSID_CSR          *((volatile unsigned long*) USB_BASE + 0x200C)
-#define USB_USERID_CSR          *((volatile unsigned long*) USB_BASE + 0x2010)
-#define USB_USER_CONF1          *((volatile unsigned long*) USB_BASE + 0x2014)
-#define USB_USER_CONF2          *((volatile unsigned long*) USB_BASE + 0x2018)
-#define USB_USER_CONF3          *((volatile unsigned long*) USB_BASE + 0x201C)
-#define USB_USER_CONF4          *((volatile unsigned long*) USB_BASE + 0x2020)
-#define USB_USER_CONF5          *((volatile unsigned long*) USB_BASE + 0x2024)
+#define USB_HOST_CH_SPLT(i)     *((volatile unsigned long*) (USB_BASE + 0x1000 + (i*0x20)))
+#define USB_HOST_CH_STS(i)      *((volatile unsigned long*) (USB_BASE + 0x1004 + (i*0x20)))
+#define USB_HOST_CH_TXFSIZE(i)  *((volatile unsigned long*) (USB_BASE + 0x1008 + (i*0x20)))
+#define USB_HOST_CH_REQ(i)      *((volatile unsigned long*) (USB_BASE + 0x100C + (i*0x20)))
+#define USB_HOST_CH_PER_INFO(i) *((volatile unsigned long*) (USB_BASE + 0x1010 + (i*0x20)))
+#define USB_HOST_CH_DESC_PTR(i) *((volatile unsigned long*) (USB_BASE + 0x1014 + (i*0x20)))
+#define USB_HOST_CH_STS_MASK(i) *((volatile unsigned long*) (USB_BASE + 0x1018 + (i*0x20)))
+
+#define USB_HOST_CFG            *((volatile unsigned long*) (USB_BASE + 0x1400))
+#define USB_HOST_CTRL           *((volatile unsigned long*) (USB_BASE + 0x1404))
+#define USB_HOST_INTR           *((volatile unsigned long*) (USB_BASE + 0x140C))
+#define USB_HOST_INTR_MASK      *((volatile unsigned long*) (USB_BASE + 0x1410))
+#define USB_HOST_CH_INTR        *((volatile unsigned long*) (USB_BASE + 0x1414))
+#define USB_HOST_CH_INTR_MASK   *((volatile unsigned long*) (USB_BASE + 0x1418))
+#define USB_HOST_FRAME_INT      *((volatile unsigned long*) (USB_BASE + 0x141C))
+#define USB_HOST_FRAME_REM      *((volatile unsigned long*) (USB_BASE + 0x1420))
+#define USB_HOST_FRAME_NUM      *((volatile unsigned long*) (USB_BASE + 0x1424))
+
+#define USB_HOST_PORT0_CTRL_STS *((volatile unsigned long*) (USB_BASE + 0x1500))
+
+#define USB_OTG_CSR             *((volatile unsigned long*) (USB_BASE + 0x2000))
+#define USB_I2C_CSR             *((volatile unsigned long*) (USB_BASE + 0x2004))
+#define USB_GPIO_CSR            *((volatile unsigned long*) (USB_BASE + 0x2008))
+#define USB_SNPSID_CSR          *((volatile unsigned long*) (USB_BASE + 0x200C))
+#define USB_USERID_CSR          *((volatile unsigned long*) (USB_BASE + 0x2010))
+#define USB_USER_CONF1          *((volatile unsigned long*) (USB_BASE + 0x2014))
+#define USB_USER_CONF2          *((volatile unsigned long*) (USB_BASE + 0x2018))
+#define USB_USER_CONF3          *((volatile unsigned long*) (USB_BASE + 0x201C))
+#define USB_USER_CONF4          *((volatile unsigned long*) (USB_BASE + 0x2020))
+#define USB_USER_CONF5          *((volatile unsigned long*) (USB_BASE + 0x2024))
 
 struct usb_endpoint
 {