svn commit: r313674 - in head/sys: arm/freescale/imx dev/usb/controller
Ian Lepore
ian at FreeBSD.org
Sun Feb 12 00:52:24 UTC 2017
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) {
More information about the svn-src-all
mailing list