void usbf_reset_controller(enum periph_id id, struct usb_ctlr *usbctlr) { /* Reset the USB controller with 2us delay */ reset_periph(id, 2); #if !defined(CONFIG_TEGRA3) /* * Set USB1_NO_LEGACY_MODE to 1, Registers are accessible under * base address */ if (id == PERIPH_ID_USBD) bf_writel(USB1_NO_LEGACY_MODE, NO_LEGACY_MODE, &usbctlr->usb1_legacy_ctrl); #endif /* Put UTMIP1/3 in reset */ bf_writel(UTMIP_RESET, 1, &usbctlr->susp_ctrl); /* Set USB3 to use UTMIP PHY */ if (id == PERIPH_ID_USB3) bf_writel(UTMIP_PHY_ENB, 1, &usbctlr->susp_ctrl); /* * TODO: where do we take the USB1 out of reset? The old code would * take USB3 out of reset, but not USB1. This code doesn't do either. */ }
static void i2c_reset_controller(struct i2c_bus *i2c_bus) { /* Reset I2C controller. */ reset_periph(i2c_bus->periph_id, 1); /* re-program config register to packet mode */ set_packet_mode(i2c_bus); }
void usbf_reset_controller(struct fdt_usb *config, struct usb_ctlr *usbctlr) { /* Reset the USB controller with 2us delay */ reset_periph(config->periph_id, 2); /* * Set USB1_NO_LEGACY_MODE to 1, Registers are accessible under * base address */ if (config->has_legacy_mode) setbits_le32(&usbctlr->usb1_legacy_ctrl, USB1_NO_LEGACY_MODE); /* Put UTMIP1/3 in reset */ setbits_le32(&usbctlr->susp_ctrl, UTMIP_RESET); /* Enable the UTMIP PHY */ if (config->utmi) setbits_le32(&usbctlr->susp_ctrl, UTMIP_PHY_ENB); }
void usbf_reset_controller(struct fdt_usb *config, struct usb_ctlr *usbctlr) { /* Reset the USB controller with 2us delay */ reset_periph(config->periph_id, 2); /* * Set USB1_NO_LEGACY_MODE to 1, Registers are accessible under * base address */ if (config->has_legacy_mode) setbits_le32(&usbctlr->usb1_legacy_ctrl, USB1_NO_LEGACY_MODE); /* Put UTMIP1/3 in reset */ setbits_le32(&usbctlr->susp_ctrl, UTMIP_RESET); /* Enable the UTMIP PHY */ if (config->utmi) setbits_le32(&usbctlr->susp_ctrl, UTMIP_PHY_ENB); /* * TODO: where do we take the USB1 out of reset? The old code would * take USB3 out of reset, but not USB1. This code doesn't do either. */ }