From owner-svn-soc-all@FreeBSD.ORG Thu Aug 9 16:14:08 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D6746106564A for ; Thu, 9 Aug 2012 16:14:05 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 09 Aug 2012 16:14:05 +0000 Date: Thu, 09 Aug 2012 16:14:05 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120809161405.D6746106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r240214 - in soc2012/aleek/beaglexm-armv6/sys/arm: conf ti/usb X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2012 16:14:08 -0000 Author: aleek Date: Thu Aug 9 16:14:05 2012 New Revision: 240214 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=240214 Log: working od omap ehci driver. Its still not working Modified: soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c Modified: soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Thu Aug 9 15:11:38 2012 (r240213) +++ soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Thu Aug 9 16:14:05 2012 (r240214) @@ -107,8 +107,8 @@ # USB support device usb options USB_DEBUG -options USB_REQ_DEBUG -options USB_VERBOSE +options USB_REQ_DEBUG +options USB_VERBOSE device musb device ehci device umass Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c Thu Aug 9 15:11:38 2012 (r240213) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/usb/omap_ehci.c Thu Aug 9 16:14:05 2012 (r240214) @@ -102,6 +102,9 @@ #include #include +#include +#include + #include #include "gpio_if.h" @@ -111,6 +114,7 @@ device_t sc_dev; device_t sc_gpio_dev; + device_t sc_vreg_dev; /* TLL register set */ struct resource* tll_mem_res; @@ -352,6 +356,11 @@ /* Enable Clocks for high speed USBHOST */ ti_prcm_clk_enable(USBHSHOST_CLK); + + /* enabling TWL4030/TPS95950 voltage regulator */ + twl_vreg_set_voltage(isc->sc_vreg_dev, "vusb1v5", 1800); + twl_vreg_set_voltage(isc->sc_vreg_dev, "vusb1v8", 1800); + twl_vreg_set_voltage(isc->sc_vreg_dev, "vusb3v1", 1800); /* Hold the PHY in reset while configuring */ for (int i = 0; i < 3; i++) { @@ -381,6 +390,8 @@ /* Enable the USB TLL */ ti_prcm_clk_enable(USBTLL_CLK); + //omap_ehci_write_4(isc, OMAP_USBHOST_INSNREG04, OMAP_USBHOST_INSNREG04_DISABLE_UNSUSPEND); + /* Perform TLL soft reset, and wait until reset is complete */ omap_tll_write_4(isc, OMAP_USBTLL_SYSCONFIG, TLL_SYSCONFIG_SOFTRESET); @@ -414,7 +425,7 @@ TLL_SYSCONFIG_CACTIVITY); } else if (isc->ehci_rev == OMAP_EHCI_REV2) { - +#if 0 /* For OMAP44xx devices you have to enable the per-port clocks: * PHY_MODE - External ULPI clock * TTL_MODE - Internal UTMI clock @@ -437,6 +448,7 @@ else if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_HSIC) ti_prcm_clk_enable(USBP2_HSIC_CLK); } +#endif } /* Put UHH in SmartIdle/SmartStandby mode */ @@ -533,6 +545,13 @@ omap_ehci_utmi_init(isc, tll_ch_mask); } + /* Soft reset the PHY using PHY reset command over ULPI */ + if (isc->port_mode[0] == EHCI_HCD_OMAP_MODE_PHY) + omap_ehci_soft_phy_reset(isc, 0); + if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_PHY) + omap_ehci_soft_phy_reset(isc, 1); + + //ehci_reset( isc->base ); /* Release the PHY reset signal now we have configured everything */ if (reset_performed) { @@ -560,11 +579,6 @@ reg |= (1 << 16); omap_ehci_write_4(isc, OMAP_USBHOST_USBCMD, reg); - /* Soft reset the PHY using PHY reset command over ULPI */ - if (isc->port_mode[0] == EHCI_HCD_OMAP_MODE_PHY) - omap_ehci_soft_phy_reset(isc, 0); - if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_PHY) - omap_ehci_soft_phy_reset(isc, 1); return(0); @@ -785,6 +799,7 @@ /* save the device */ isc->sc_dev = dev; + isc->sc_vreg_dev = devclass_get_device(devclass_find("twl_vreg"), 0); /* get all DMA memory */ if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(dev), @@ -895,7 +910,6 @@ /* Setup the interrupt */ - device_printf( dev, "%s:%d\n", __func__, __LINE__ ); err = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, NULL, (driver_intr_t *)ehci_interrupt, sc, &sc->sc_intr_hdl); if (err) { @@ -905,10 +919,8 @@ } - device_printf( dev, "%s:%d\n", __func__, __LINE__ ); /* Finally we are ready to kick off the ECHI host controller */ err = 0; //ehci_init(sc); - device_printf( dev, "%s:%d\n", __func__, __LINE__ ); if (err == 0) { err = device_probe_and_attach(sc->sc_bus.bdev); }