Lines Matching full:isc

132 omap_uhh_init(struct omap_uhh_softc *isc)
139 ti_sysc_clock_enable(device_get_parent(isc->sc_dev));
142 isc->uhh_rev = omap_uhh_read_4(isc, OMAP_USBHOST_UHH_REVISION);
143 device_printf(isc->sc_dev, "UHH revision 0x%08x\n", isc->uhh_rev);
147 if (isc->uhh_rev == OMAP_UHH_REV2) {
153 switch(isc->port_mode[0]) {
158 device_printf(isc->sc_dev,
161 device_printf(isc->sc_dev,
166 device_printf(isc->sc_dev,
171 device_printf(isc->sc_dev,
175 device_printf(isc->sc_dev, "unknown port mode %d for port 0\n", isc->port_mode[0]);
177 switch(isc->port_mode[1]) {
182 device_printf(isc->sc_dev,
185 device_printf(isc->sc_dev,
190 device_printf(isc->sc_dev,
195 device_printf(isc->sc_dev,
199 device_printf(isc->sc_dev, "unknown port mode %d for port 1\n", isc->port_mode[1]);
205 reg = omap_uhh_read_4(isc, OMAP_USBHOST_UHH_SYSCONFIG);
206 if (isc->uhh_rev == OMAP_UHH_REV1) {
214 } else if (isc->uhh_rev == OMAP_UHH_REV2) {
220 omap_uhh_write_4(isc, OMAP_USBHOST_UHH_SYSCONFIG, reg);
221 device_printf(isc->sc_dev, "OMAP_UHH_SYSCONFIG: 0x%08x\n", reg);
223 reg = omap_uhh_read_4(isc, OMAP_USBHOST_UHH_HOSTCONFIG);
231 if (isc->uhh_rev == OMAP_UHH_REV1) {
232 if (isc->port_mode[0] == EHCI_HCD_OMAP_MODE_UNKNOWN)
234 if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_UNKNOWN)
236 if (isc->port_mode[2] == EHCI_HCD_OMAP_MODE_UNKNOWN)
240 if ((isc->port_mode[0] == EHCI_HCD_OMAP_MODE_PHY) ||
241 (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_PHY) ||
242 (isc->port_mode[2] == EHCI_HCD_OMAP_MODE_PHY))
247 } else if (isc->uhh_rev == OMAP_UHH_REV2) {
254 if (isc->port_mode[0] == EHCI_HCD_OMAP_MODE_TLL)
256 else if (isc->port_mode[0] == EHCI_HCD_OMAP_MODE_HSIC)
259 if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_TLL)
261 else if (isc->port_mode[1] == EHCI_HCD_OMAP_MODE_HSIC)
265 omap_uhh_write_4(isc, OMAP_USBHOST_UHH_HOSTCONFIG, reg);
266 device_printf(isc->sc_dev, "UHH setup done, uhh_hostconfig=0x%08x\n", reg);
277 omap_uhh_write_4(isc, OMAP_USBHOST_INSNREG04,
282 if (isc->port_mode[i] == EHCI_HCD_OMAP_MODE_TLL)
293 * @isc: omap ehci device context
304 omap_uhh_fini(struct omap_uhh_softc *isc)
308 device_printf(isc->sc_dev, "Stopping TI EHCI USB Controller\n");
317 omap_uhh_write_4(isc, OMAP_USBHOST_UHH_SYSCONFIG, 0x0002);
318 while ((omap_uhh_read_4(isc, OMAP_USBHOST_UHH_SYSSTATUS) & 0x07) == 0x00) {
323 device_printf(isc->sc_dev, "operation timed out\n");
329 ti_sysc_clock_disable(device_get_parent(isc->sc_dev));
331 device_printf(isc->sc_dev, "Clock to USB host has been disabled\n");
337 struct omap_uhh_softc *isc;
339 isc = device_get_softc(dev);
343 return isc->port_mode[port];
364 struct omap_uhh_softc *isc = device_get_softc(dev);
373 isc->sc_dev = dev;
377 isc->uhh_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
378 if (!isc->uhh_mem_res) {
390 isc->port_mode[i] = EHCI_HCD_OMAP_MODE_UNKNOWN;
397 isc->port_mode[i] = EHCI_HCD_OMAP_MODE_PHY;
399 isc->port_mode[i] = EHCI_HCD_OMAP_MODE_TLL;
401 isc->port_mode[i] = EHCI_HCD_OMAP_MODE_HSIC;
405 err = omap_uhh_init(isc);
434 struct omap_uhh_softc *isc = device_get_softc(dev);
442 if (isc->uhh_mem_res) {
443 bus_release_resource(dev, SYS_RES_MEMORY, 0, isc->uhh_mem_res);
444 isc->uhh_mem_res = NULL;
447 omap_uhh_fini(isc);