/* ******************************************************************************* * init_sw_hci * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ static int init_sw_hci(struct sw_hci_hcd *sw_hci, u32 usbc_no, u32 ohci, const char *hci_name) { s32 ret = 0; memset(sw_hci, 0, sizeof(struct sw_hci_hcd)); sw_hci->usbc_no = usbc_no; sw_hci->usbc_type = ohci ? SW_USB_OHCI : SW_USB_EHCI; if(ohci){ sw_hci->irq_no = ohci_irq_no[sw_hci->usbc_no]; }else{ sw_hci->irq_no = ehci_irq_no[sw_hci->usbc_no]; } sprintf(sw_hci->hci_name, "%s%d", hci_name, sw_hci->usbc_no); sw_hci->usb_vbase = (void __iomem *)usbc_base[sw_hci->usbc_no]; sw_hci->sram_vbase = (void __iomem *)SW_VA_SRAM_IO_BASE; sw_hci->clock_vbase = (void __iomem *)SW_VA_CCM_IO_BASE; sw_hci->gpio_vbase = (void __iomem *)SW_VA_PORTC_IO_BASE; sw_hci->sdram_vbase = (void __iomem *)SW_VA_DRAM_IO_BASE; get_usb_cfg(sw_hci); sw_hci->open_clock = open_clock; sw_hci->close_clock = close_clock; sw_hci->set_power = sw_set_vbus; sw_hci->usb_passby = usb_passby; sw_hci->port_configure = hci_port_configure; ret = clock_init(sw_hci, ohci); if(ret != 0){ DMSG_PANIC("ERR: clock_init failed\n"); goto failed1; } print_sw_hci(sw_hci); return 0; failed1: return -1; }
static int init_sw_hci(struct sw_hci_hcd *sw_hci, u32 usbc_no, u32 ohci, const char *hci_name) { s32 ret = 0; u32 drv_vbus_Handle = 0; memset(sw_hci, 0, sizeof(struct sw_hci_hcd)); sw_hci->usbc_no = usbc_no; sprintf(sw_hci->hci_name, "%s%d", hci_name, sw_hci->usbc_no); sw_hci->usb_vbase = (void __iomem *)usbc_base[sw_hci->usbc_no]; get_usb_cfg(sw_hci); drv_vbus_Handle = alloc_pin(&sw_hci->drv_vbus_gpio_set); if (drv_vbus_Handle == 0) { DMSG_PANIC("ERR: alloc_pin failed\n"); goto failed1; } sw_hci->drv_vbus_Handle = drv_vbus_Handle; sw_hci->open_clock = open_clock; sw_hci->close_clock = close_clock; sw_hci->set_power = sw_set_vbus; sw_hci->usb_passby = usb_passby; sw_hci->port_configure = hci_port_configure; ret = clock_init(sw_hci, ohci); if (ret != 0) { DMSG_PANIC("ERR: clock_init failed\n"); goto failed1; } print_sw_hci(sw_hci); return 0; failed1: return -1; }