Module Name:    src
Committed By:   jmcneill
Date:           Sat Sep 13 17:48:00 UTC 2014

Modified Files:
        src/sys/arch/arm/allwinner: awin_reg.h awin_usb.c

Log Message:
add some more usb regs


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/allwinner/awin_reg.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/allwinner/awin_usb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/allwinner/awin_reg.h
diff -u src/sys/arch/arm/allwinner/awin_reg.h:1.24 src/sys/arch/arm/allwinner/awin_reg.h:1.25
--- src/sys/arch/arm/allwinner/awin_reg.h:1.24	Thu Sep 11 00:50:39 2014
+++ src/sys/arch/arm/allwinner/awin_reg.h	Sat Sep 13 17:48:00 2014
@@ -160,6 +160,9 @@
 
 #define AWIN_SRAM_CTL1_A3_A4		__BITS(5,4)
 #define AWIN_SRAM_CTL1_A3_A4_EMAC	1
+#define AWIN_SRAM_CTL1_SRAMD_MAP	__BIT(0)
+#define AWIN_SRAM_CTL1_SRAMD_MAP_CPUDMA	0
+#define AWIN_SRAM_CTL1_SRAMD_MAP_USB0	1
 
 #define AWIN_SRAM_VER_KEY_FIELD		__BITS(31,16)
 #define AWIN_SRAM_VER_R_EN		__BIT(15)
@@ -1025,18 +1028,44 @@ struct awin_mmc_idma_descriptor {
 #define AWIN_CLK_OUT_SRC_FACTOR_M	__BITS(12,8)
 
 /* USB device offsets */
-#define AWIN_USB0_PHY_CSR_REG		0x0404
+#define AWIN_USB0_PHY_CSR_REG		0x0400
+#define AWIN_USB0_PHY_CTL_REG		0x0404
 #define AWIN_EHCI_OFFSET		0x0000
 #define AWIN_EHCI_SIZE			0x0400
 #define AWIN_OHCI_OFFSET		0x0400
 #define AWIN_OHCI_SIZE			0x0400
 #define AWIN_USB_PMU_IRQ_REG		0x0800
 
-#define AWIN_USB0_PHY_CSR_ADDR		__BITS(15,8)
-#define AWIN_USB0_PHY_CSR_DAT		__BIT(7)
-#define AWIN_USB0_PHY_CSR_CLK2		__BIT(2)
-#define AWIN_USB0_PHY_CSR_CLK1		__BIT(1)
-#define AWIN_USB0_PHY_CSR_CLK0		__BIT(0)
+#define AWIN_USB0_PHY_CSR_VBUS_VALID_DATA	__BIT(30)
+#define AWIN_USB0_PHY_CSR_VBUS_VALID_VBUS	__BIT(29)
+#define AWIN_USB0_PHY_CSR_EXT_ID_STATUS		__BIT(28)
+#define AWIN_USB0_PHY_CSR_EXT_DM_STATUS		__BIT(27)
+#define AWIN_USB0_PHY_CSR_EXT_DP_STATUS		__BIT(26)
+#define AWIN_USB0_PHY_CSR_MERGED_VBUS_STATUS	__BIT(25)
+#define AWIN_USB0_PHY_CSR_MERGED_ID_STATUS	__BIT(24)
+#define AWIN_USB0_PHY_CSR_ID_PULLUP_EN		__BIT(17)
+#define AWIN_USB0_PHY_CSR_DPDM_PULLUP_EN	__BIT(16)
+#define AWIN_USB0_PHY_CSR_FORCE_ID		__BITS(15,14)
+#define AWIN_USB0_PHY_CSR_FORCE_ID_LOW		2
+#define AWIN_USB0_PHY_CSR_FORCE_ID_HIGH		3
+#define AWIN_USB0_PHY_CSR_FORCE_VBUS_VALID	__BITS(13,12)
+#define AWIN_USB0_PHY_CSR_FORCE_VBUS_VALID_LOW	2
+#define AWIN_USB0_PHY_CSR_FORCE_VBUS_VALID_HIGH	3
+#define AWIN_USB0_PHY_CSR_VBUS_VALID_SRC	__BITS(11,10)
+#define AWIN_USB0_PHY_CSR_HOSC_EN		__BIT(7)
+#define AWIN_USB0_PHY_CSR_VBUS_CHANGE_DET	__BIT(6)
+#define AWIN_USB0_PHY_CSR_ID_CHANGE_DET		__BIT(5)
+#define AWIN_USB0_PHY_CSR_DPDM_CHANGE_DET	__BIT(4)
+#define AWIN_USB0_PHY_CSR_IRQ_EN		__BIT(3)
+#define AWIN_USB0_PHY_CSR_VBUS_CHANGE_DET_EN	__BIT(2)
+#define AWIN_USB0_PHY_CSR_ID_CHANGE_DET_EN	__BIT(1)
+#define AWIN_USB0_PHY_CSR_DPDM_CHANGE_DET_EN	__BIT(0)
+
+#define AWIN_USB0_PHY_CTL_ADDR		__BITS(15,8)
+#define AWIN_USB0_PHY_CTL_DAT		__BIT(7)
+#define AWIN_USB0_PHY_CTL_CLK2		__BIT(2)
+#define AWIN_USB0_PHY_CTL_CLK1		__BIT(1)
+#define AWIN_USB0_PHY_CTL_CLK0		__BIT(0)
 
 #define AWIN_USB_PMU_IRQ_AHB_INCR8	__BIT(10)
 #define AWIN_USB_PMU_IRQ_AHB_INCR4	__BIT(9)

Index: src/sys/arch/arm/allwinner/awin_usb.c
diff -u src/sys/arch/arm/allwinner/awin_usb.c:1.12 src/sys/arch/arm/allwinner/awin_usb.c:1.13
--- src/sys/arch/arm/allwinner/awin_usb.c:1.12	Tue Jun 24 05:07:31 2014
+++ src/sys/arch/arm/allwinner/awin_usb.c	Sat Sep 13 17:48:00 2014
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: awin_usb.c,v 1.12 2014/06/24 05:07:31 skrll Exp $");
+__KERNEL_RCSID(1, "$NetBSD: awin_usb.c,v 1.13 2014/09/13 17:48:00 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -236,33 +236,33 @@ awin_usb_phy_write(struct awinusb_softc 
 {
 	bus_space_tag_t bst = usbsc->usbsc_bst;
 	bus_space_handle_t bsh = usbsc->usbsc_usb0_phy_csr_bsh;
-	uint32_t clk = AWIN_USB0_PHY_CSR_CLK0 << usbsc->usbsc_number;
+	uint32_t clk = AWIN_USB0_PHY_CTL_CLK0 << usbsc->usbsc_number;
 
 	uint32_t v = bus_space_read_4(bst, bsh, 0);
 
-	KASSERT((v & AWIN_USB0_PHY_CSR_CLK0) == 0);
-	KASSERT((v & AWIN_USB0_PHY_CSR_CLK1) == 0);
-	KASSERT((v & AWIN_USB0_PHY_CSR_CLK2) == 0);
+	KASSERT((v & AWIN_USB0_PHY_CTL_CLK0) == 0);
+	KASSERT((v & AWIN_USB0_PHY_CTL_CLK1) == 0);
+	KASSERT((v & AWIN_USB0_PHY_CTL_CLK2) == 0);
 
-	v &= ~AWIN_USB0_PHY_CSR_ADDR;
-	v &= ~AWIN_USB0_PHY_CSR_DAT;
+	v &= ~AWIN_USB0_PHY_CTL_ADDR;
+	v &= ~AWIN_USB0_PHY_CTL_DAT;
 
-	v |= __SHIFTIN(bit_addr, AWIN_USB0_PHY_CSR_ADDR);
+	v |= __SHIFTIN(bit_addr, AWIN_USB0_PHY_CTL_ADDR);
 
 	/*
 	 * Bitbang the data to the phy, bit by bit, incrementing bit address
 	 * as we go.
 	 */
 	for (; len > 0; bit_addr++, bits >>= 1, len--) {
-		v |= __SHIFTIN(bits & 1, AWIN_USB0_PHY_CSR_DAT);
+		v |= __SHIFTIN(bits & 1, AWIN_USB0_PHY_CTL_DAT);
 		bus_space_write_4(bst, bsh, 0, v);
 		delay(1);
 		bus_space_write_4(bst, bsh, 0, v | clk);
 		delay(1);
 		bus_space_write_4(bst, bsh, 0, v);
 		delay(1);
-		v += __LOWEST_SET_BIT(AWIN_USB0_PHY_CSR_ADDR);
-		v &= ~AWIN_USB0_PHY_CSR_DAT;
+		v += __LOWEST_SET_BIT(AWIN_USB0_PHY_CTL_ADDR);
+		v &= ~AWIN_USB0_PHY_CTL_DAT;
 	}
 }
 
@@ -335,7 +335,7 @@ awinusb_attach(device_t parent, device_t
 	    loc->loc_offset + AWIN_OHCI_OFFSET, AWIN_OHCI_SIZE,
 	    &usbsc->usbsc_ohci_bsh);
 	bus_space_subregion(usbsc->usbsc_bst, aio->aio_core_bsh,
-	    AWIN_USB0_OFFSET + AWIN_USB0_PHY_CSR_REG, 4,
+	    AWIN_USB0_OFFSET + AWIN_USB0_PHY_CTL_REG, 4,
 	    &usbsc->usbsc_usb0_phy_csr_bsh);
 
 	aprint_naive("\n");

Reply via email to