Module Name:    src
Committed By:   reinoud
Date:           Wed Jun 11 14:54:32 UTC 2014

Modified Files:
        src/sys/arch/arm/samsung: exynos4_loc.c exynos5_loc.c exynos_usb.c
            exynos_var.h

Log Message:
Remove the exyo_usb_locinfo structure as exyousb becomes usb2 only


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/samsung/exynos4_loc.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/samsung/exynos5_loc.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/samsung/exynos_usb.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/samsung/exynos_var.h

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/samsung/exynos4_loc.c
diff -u src/sys/arch/arm/samsung/exynos4_loc.c:1.8 src/sys/arch/arm/samsung/exynos4_loc.c:1.9
--- src/sys/arch/arm/samsung/exynos4_loc.c:1.8	Fri Jun  6 14:28:58 2014
+++ src/sys/arch/arm/samsung/exynos4_loc.c	Wed Jun 11 14:54:32 2014
@@ -272,7 +272,7 @@ static const struct exyo_locators exynos
 	{ "sscom", OFFANDSIZE(,UART1), 1, IRQ_UART1, 0 },
 	{ "sscom", OFFANDSIZE(,UART2), 2, IRQ_UART2, 0 },
 	{ "sscom", OFFANDSIZE(,UART3), 3, IRQ_UART3, 0 },
-	{ "exyousb", 0, 0, NOPORT, NOINTR, 0},		/* uses usb locators */
+	{ "exyousb", OFFANDSIZE(,USB2HOST), NOPORT, IRQ_UHOST, 0 },
 };
 
 const struct exyo_locinfo exynos4_locinfo = {
@@ -301,24 +301,3 @@ const struct exyo_locinfo exynos4_i2c_lo
 	.nlocators = __arraycount(exynos4_i2c_locators)
 };
 
-
-/* usb locators */
-const struct exyo_usb_locinfo exynos4_usb_locinfo = {
-	.uloc_pmuregs_offset	= EXYNOS4_PMU_OFFSET,
-	.uloc_sysregs_offset	= 0,
-
-	.uloc_ehci_offset	= EXYNOS4_USBHOST0_OFFSET,
-	.uloc_ohci_offset	= EXYNOS4_USBHOST1_OFFSET,
-	.uloc_usbotg_offset	= EXYNOS4_USBOTG1_OFFSET,
-	.uloc_usb2phy_offset	= EXYNOS4_USBOTG1_OFFSET,
-
-	.uloc_usbhost_irq	= IRQ_UHOST,
-	.uloc_usbotg_irq	= IRQ_HSOTG,
-	.uloc_usb3_irq		= 0,		/* no usb3 */
-
-	.uloc_usb3_xhci0_offset	= 0,		/* no usb3 */
-	.uloc_usb3_xhci1_offset	= 0,		/* no usb3 */
-	.uloc_usb3_phy0_offset	= 0,		/* no usb3 */
-	.uloc_usb3_phy1_offset	= 0,		/* no usb3 */
-};
-

Index: src/sys/arch/arm/samsung/exynos5_loc.c
diff -u src/sys/arch/arm/samsung/exynos5_loc.c:1.6 src/sys/arch/arm/samsung/exynos5_loc.c:1.7
--- src/sys/arch/arm/samsung/exynos5_loc.c:1.6	Fri Jun  6 14:28:58 2014
+++ src/sys/arch/arm/samsung/exynos5_loc.c	Wed Jun 11 14:54:32 2014
@@ -237,23 +237,3 @@ const struct exyo_locinfo exynos5_i2c_lo
 };
 
 
-/* usb locators */
-const struct exyo_usb_locinfo exynos5_usb_locinfo = {
-	.uloc_pmuregs_offset	= EXYNOS5_ALIVE_OFFSET,
-	.uloc_sysregs_offset	= EXYNOS5_SYSREG_OFFSET,
-
-	.uloc_ehci_offset	= EXYNOS5_USB2_HOST_EHCI_OFFSET,
-	.uloc_ohci_offset	= EXYNOS5_USB2_HOST_OHCI_OFFSET,
-	.uloc_usbotg_offset	= EXYNOS5_USB2_DEVICE_LINK_OFFSET,
-	.uloc_usb2phy_offset	= EXYNOS5_USB2_DEVICE_LINK_OFFSET,
-
-	.uloc_usbhost_irq	= IRQ_USB_HOST20,
-	.uloc_usbotg_irq	= IRQ_USBOTG,
-	.uloc_usb3_irq		= IRQ_USB_DRD30,
-
-	.uloc_usb3_xhci0_offset	= EXYNOS5_USB3_XHCI0_OFFSET,
-	.uloc_usb3_xhci1_offset	= EXYNOS5_USB3_XHCI1_OFFSET,
-	.uloc_usb3_phy0_offset	= EXYNOS5_USB3_PHY0_OFFSET,
-	.uloc_usb3_phy1_offset	= EXYNOS5_USB3_PHY1_OFFSET,
-};
-

Index: src/sys/arch/arm/samsung/exynos_usb.c
diff -u src/sys/arch/arm/samsung/exynos_usb.c:1.5 src/sys/arch/arm/samsung/exynos_usb.c:1.6
--- src/sys/arch/arm/samsung/exynos_usb.c:1.5	Fri Jun  6 14:28:58 2014
+++ src/sys/arch/arm/samsung/exynos_usb.c	Wed Jun 11 14:54:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: exynos_usb.c,v 1.5 2014/06/06 14:28:58 reinoud Exp $	*/
+/*	$NetBSD: exynos_usb.c,v 1.6 2014/06/11 14:54:32 reinoud Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: exynos_usb.c,v 1.5 2014/06/06 14:28:58 reinoud Exp $");
+__KERNEL_RCSID(1, "$NetBSD: exynos_usb.c,v 1.6 2014/06/11 14:54:32 reinoud Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -67,10 +67,13 @@ __KERNEL_RCSID(1, "$NetBSD: exynos_usb.c
 #include <arm/samsung/exynos_var.h>
 #include <arm/samsung/exynos_io.h>
 
+#define EHCI_OFFSET	(0)
+#define OHCI_OFFSET	(1*EXYNOS_BLOCK_SIZE)
+#define DEVLINK_OFFSET	(2*EXYNOS_BLOCK_SIZE)	/* Exynos5 */
+#define USB2PHY_OFFSET	(3*EXYNOS_BLOCK_SIZE)
 
 struct exynos_usb_softc {
 	device_t	 sc_self;
-	const struct exyo_usb_locinfo *sc_locinfo;
 
 	/* keep our tags here */
 	bus_dma_tag_t	 sc_dmat;
@@ -81,11 +84,11 @@ struct exynos_usb_softc {
 	bus_space_handle_t sc_usb2phy_bsh;
 
 	bus_space_handle_t sc_pmuregs_bsh;
-	bus_space_handle_t sc_sysregs_bsh;
 
 	device_t	 sc_ohci_dev;
 	device_t	 sc_ehci_dev;
 
+	int		 sc_irq;
 	void		*sc_intrh;
 } exynos_usb_sc;
 
@@ -130,23 +133,15 @@ exynos_usb_attach(device_t parent, devic
 	struct exyo_locators *loc = &exyoaa->exyo_loc;
 	struct exynos_gpio_pindata XuhostOVERCUR;
 	struct exynos_gpio_pindata XuhostPWREN;
+	bus_size_t pmu_offset;
 
 	/* no locators expected */
-	KASSERT(loc->loc_offset == 0);
-	KASSERT(loc->loc_size   == 0);
-	KASSERT(loc->loc_port   == EXYOCF_PORT_DEFAULT);
+	KASSERT(loc->loc_port == EXYOCF_PORT_DEFAULT);
+	KASSERT(loc->loc_intr != EXYOCF_INTR_DEFAULT);
 
 	/* copy our device handle */
 	sc->sc_self = self;
-#ifdef EXYNOS4
-	if (IS_EXYNOS4_P())
-		sc->sc_locinfo = &exynos4_usb_locinfo;
-#endif
-#ifdef EXYNOS5
-	if (IS_EXYNOS5_P())
-		sc->sc_locinfo = &exynos5_usb_locinfo;
-#endif
-	KASSERT(sc->sc_locinfo);
+	sc->sc_irq  = loc->loc_intr;
 
 	/* get our bushandles */
 	sc->sc_bst  = exyoaa->exyo_core_bst;
@@ -154,24 +149,29 @@ exynos_usb_attach(device_t parent, devic
 //	sc->sc_dmat = exyoaa->exyo_coherent_dmat;
 
 	bus_space_subregion(sc->sc_bst, exyoaa->exyo_core_bsh,
-		sc->sc_locinfo->uloc_ehci_offset, EXYNOS_BLOCK_SIZE,
+		loc->loc_offset + EHCI_OFFSET, EXYNOS_BLOCK_SIZE,
 		&sc->sc_ehci_bsh);
 	bus_space_subregion(sc->sc_bst, exyoaa->exyo_core_bsh,
-		sc->sc_locinfo->uloc_ohci_offset, EXYNOS_BLOCK_SIZE,
+		loc->loc_offset + OHCI_OFFSET, EXYNOS_BLOCK_SIZE,
 		&sc->sc_ohci_bsh);
 	bus_space_subregion(sc->sc_bst, exyoaa->exyo_core_bsh,
-		sc->sc_locinfo->uloc_usb2phy_offset, EXYNOS_BLOCK_SIZE,
+		loc->loc_offset + USB2PHY_OFFSET, EXYNOS_BLOCK_SIZE,
 		&sc->sc_usb2phy_bsh);
 
+#ifdef EXYNOS4
+	if (IS_EXYNOS4_P())
+		pmu_offset = EXYNOS4_PMU_OFFSET;
+#endif
+#ifdef EXYNOS5
+	if (IS_EXYNOS5_P())
+		pmu_offset = EXYNOS5_ALIVE_OFFSET;
+#endif
+
+	KASSERT(pmu_offset);
 	bus_space_subregion(sc->sc_bst, exyoaa->exyo_core_bsh,
-		sc->sc_locinfo->uloc_pmuregs_offset, EXYNOS_BLOCK_SIZE,
+		pmu_offset, EXYNOS_BLOCK_SIZE,
 		&sc->sc_pmuregs_bsh);
 
-	if (sc->sc_locinfo->uloc_sysregs_offset)
-		bus_space_subregion(sc->sc_bst, exyoaa->exyo_core_bsh,
-			sc->sc_locinfo->uloc_sysregs_offset, EXYNOS_BLOCK_SIZE,
-			&sc->sc_sysregs_bsh);
-
 	aprint_naive("\n");
 	aprint_normal("\n");
 
@@ -203,16 +203,16 @@ exynos_usb_attach(device_t parent, devic
 	exynos_usb_phy_init(sc);
 
 	/* claim shared interrupt for OHCI/EHCI */
-	sc->sc_intrh = intr_establish(sc->sc_locinfo->uloc_usbhost_irq,
+	sc->sc_intrh = intr_establish(sc->sc_irq,
 		IPL_USB, IST_LEVEL, exynos_usb_intr, sc);
 	if (!sc->sc_intrh) {
 		aprint_error(": unable to establish interrupt at irq %d\n",
-			sc->sc_locinfo->uloc_usbhost_irq);
+			sc->sc_irq);
 		/* disable? TBD */
 		return;
 	}
 	aprint_normal_dev(sc->sc_self, "USB2 host interrupting on irq %d\n",
-		sc->sc_locinfo->uloc_usbhost_irq);
+		sc->sc_irq);
 
 #if NOHCI > 0
 	/* attach OHCI */
@@ -229,8 +229,6 @@ exynos_usb_attach(device_t parent, devic
 	};
 	sc->sc_ehci_dev = config_found(self, &usb_ehci, NULL);
 #endif
-
-	/* TBD: USB3 xhci0 / xhci1 attachments */
 }
 
 
@@ -307,7 +305,7 @@ exynos_ohci_attach(device_t parent, devi
 	}
 	sc->sc_child = config_found(self, &sc->sc_bus, usbctlprint);
 	aprint_normal_dev(sc->sc_dev, "interrupting on irq %d\n",
-		usbsc->sc_locinfo->uloc_usbhost_irq);
+		usbsc->sc_irq);
 }
 #endif
 
@@ -364,7 +362,7 @@ exynos_ehci_attach(device_t parent, devi
 	}
 	sc->sc_child = config_found(self, &sc->sc_bus, usbctlprint);
 	aprint_normal_dev(sc->sc_dev, "interrupting on irq %d\n",
-		usbsc->sc_locinfo->uloc_usbhost_irq);
+		usbsc->sc_irq);
 }
 #endif
 
@@ -413,13 +411,13 @@ exynos4_usb2phy_enable(struct exynos_usb
 	phypwr = bus_space_read_4(sc->sc_bst, sc->sc_usb2phy_bsh,
 		USB_PHYPWR);
 
-	/* set to normal of device */
+	/* enable analog, enable otg, unsleep phy0 (host) */
 	phypwr &= ~PHYPWR_NORMAL_MASK_PHY0;
 	bus_space_write_4(sc->sc_bst, sc->sc_usb2phy_bsh,
 		USB_PHYPWR, phypwr);
 
 	if (IS_EXYNOS4X12_P()) {
-		/* set to normal of host */
+		/* enable hsic0 (host), enable hsic1 and phy1 (otg) */
 		phypwr = bus_space_read_4(sc->sc_bst, sc->sc_usb2phy_bsh,
 			USB_PHYPWR);
 		phypwr &= ~(PHYPWR_NORMAL_MASK_HSIC0 |

Index: src/sys/arch/arm/samsung/exynos_var.h
diff -u src/sys/arch/arm/samsung/exynos_var.h:1.11 src/sys/arch/arm/samsung/exynos_var.h:1.12
--- src/sys/arch/arm/samsung/exynos_var.h:1.11	Fri Jun  6 14:28:58 2014
+++ src/sys/arch/arm/samsung/exynos_var.h	Wed Jun 11 14:54:32 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_var.h,v 1.11 2014/06/06 14:28:58 reinoud Exp $ */
+/* $NetBSD: exynos_var.h,v 1.12 2014/06/11 14:54:32 reinoud Exp $ */
 /*-
  * Copyright (c) 2013, 2014 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -81,26 +81,6 @@ struct exyo_locators {
 };
 
 
-struct exyo_usb_locinfo {
-	bus_size_t	uloc_pmuregs_offset;
-	bus_size_t	uloc_sysregs_offset;
-
-	bus_size_t	uloc_ehci_offset;
-	bus_size_t	uloc_ohci_offset;
-	bus_size_t	uloc_usbotg_offset;
-	bus_size_t	uloc_usb2phy_offset;
-
-	int		uloc_usbhost_irq;
-	int		uloc_usbotg_irq;
-	int		uloc_usb3_irq;
-
-	bus_size_t	uloc_usb3_xhci0_offset;
-	bus_size_t	uloc_usb3_xhci1_offset;
-	bus_size_t	uloc_usb3_phy0_offset;
-	bus_size_t	uloc_usb3_phy1_offset;
-};
-
-
 struct exyo_attach_args {
 	struct exyo_locators exyo_loc;
 	bus_space_tag_t exyo_core_bst;

Reply via email to