Date: Thu, 09 Aug 2012 16:14:05 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r240214 - in soc2012/aleek/beaglexm-armv6/sys/arm: conf ti/usb Message-ID: <20120809161405.D6746106564A@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 <arm/ti/ti_prcm.h> #include <arm/ti/ti_scm.h> +#include <arm/ti/twl/twl.h> +#include <arm/ti/twl/twl_vreg.h> + #include <arm/ti/usb/omap_usb.h> #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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120809161405.D6746106564A>