Author: ian
Date: Sun Feb 12 00:52:22 2017
New Revision: 313674
URL: https://svnweb.freebsd.org/changeset/base/313674

Log:
  Enable usb low and full speed devices connected to the imx6 root hubs.
  
  This enables the PHY circuitry for UTMI+ level 2 and 3, and sets the
  flag to tell the ehci code that the root hub has a transaction translator
  in it.  For imx6 we can use the standard ehci_get_port_speed_portsc()
  function to find out what speed device is connected to the port.

Modified:
  head/sys/arm/freescale/imx/imx6_usbphy.c
  head/sys/dev/usb/controller/ehci_imx.c

Modified: head/sys/arm/freescale/imx/imx6_usbphy.c
==============================================================================
--- head/sys/arm/freescale/imx/imx6_usbphy.c    Sat Feb 11 23:45:50 2017        
(r313673)
+++ head/sys/arm/freescale/imx/imx6_usbphy.c    Sun Feb 12 00:52:22 2017        
(r313674)
@@ -143,6 +143,10 @@ usbphy_attach(device_t dev)
        bus_write_4(sc->mem_res, CTRL_SET_REG, CTRL_SFTRST);
        bus_write_4(sc->mem_res, CTRL_CLR_REG, CTRL_SFTRST | CTRL_CLKGATE);
 
+       /* Set UTMI+ level 2+3 bits to enable low and full speed devices. */
+       bus_write_4(sc->mem_res, CTRL_SET_REG,
+           CTRL_ENUTMILEVEL2 | CTRL_ENUTMILEVEL3);
+
        /* Power up: clear all bits in the powerdown register. */
        bus_write_4(sc->mem_res, PWD_REG, 0);
 

Modified: head/sys/dev/usb/controller/ehci_imx.c
==============================================================================
--- head/sys/dev/usb/controller/ehci_imx.c      Sat Feb 11 23:45:50 2017        
(r313673)
+++ head/sys/dev/usb/controller/ehci_imx.c      Sun Feb 12 00:52:22 2017        
(r313674)
@@ -298,8 +298,9 @@ imx_ehci_attach(device_t dev)
         * Set flags that affect ehci_init() behavior, and hook our post-reset
         * code into the standard controller code.
         */
-       esc->sc_flags |= EHCI_SCFLG_NORESTERM;
+       esc->sc_flags |= EHCI_SCFLG_NORESTERM | EHCI_SCFLG_TT;
        esc->sc_vendor_post_reset = imx_ehci_post_reset;
+       esc->sc_vendor_get_port_speed = ehci_get_port_speed_portsc;
 
        err = ehci_init(esc);
        if (err != 0) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to