/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_host_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_host_init(pointer param) { _mqx_uint dev_num = (_mqx_uint) param; _mqx_int result = _bsp_usb_io_init(dev_num); if (result != MQX_OK) return result; if (dev_num == USBCFG_CONTROLLER_KHCI) { /* Do not configure enable USB regulator for host */ // SIM_SOPT1CFG_REG(SIM_BASE_PTR) |= SIM_SOPT1CFG_URWE_MASK; // SIM_SOPT1_REG(SIM_BASE_PTR) |= SIM_SOPT1_USBREGEN_MASK; /* Reset USB peripheral */ USB_USBTRC0_REG(USB0_BASE_PTR) |= USB_USBTRC0_USBRESET_MASK; /* Wait while resetting */ while (USB_USBTRC0_REG(USB0_BASE_PTR) & USB_USBTRC0_USBRESET_MASK) {} /* reset USB CTRL register */ USB_USBCTRL_REG(USB0_BASE_PTR) = 0; /* setup interrupt */ _bsp_int_init(INT_USB0, BSP_USB_INT_LEVEL, 0, TRUE); } else if (dev_num == USBCFG_CONTROLLER_EHCI) { } else { /* unknown controller */ result = IO_ERROR; } return result; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_dev_init(struct usb_dev_if_struct *usb_if) { _mqx_int result = _bsp_usb_io_init(); if (result != MQX_OK) return result; /* Configure enable USB regulator for device */ SIM_SOPT1_REG(SIM_BASE_PTR) |= SIM_SOPT1_USBREGEN_MASK; /* Reset USB peripheral */ USB_USBTRC0_REG(USB0_BASE_PTR) |= USB_USBTRC0_USBRESET_MASK; /* Wait while resetting */ while (USB_USBTRC0_REG(USB0_BASE_PTR) & USB_USBTRC0_USBRESET_MASK) {} /* reset USB CTRL register */ USB_USBCTRL_REG(USB0_BASE_PTR) = 0; /* Enable internal pull-up resistor */ USB_CONTROL_REG(USB0_BASE_PTR) = USB_CONTROL_DPPULLUPNONOTG_MASK; USB_USBTRC0_REG(USB0_BASE_PTR) |= 0x40; /* Software must set this bit to 1 */ /* setup interrupt */ _bsp_int_init(INT_USB0, BSP_USB_INT_LEVEL, 0, TRUE); return MQX_OK; }
_mqx_int _bsp_usb_host_io_init ( struct usb_host_if_struct *dev_if ) { if (dev_if->HOST_INIT_PARAM == &_khci0_host_init_param) { _bsp_usb_io_init(0); } else if (dev_if->HOST_INIT_PARAM == &_ehci0_host_init_param) { _bsp_usb_io_init(1); } else { return IO_ERROR; //unknown controller } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_dev_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_dev_init(struct usb_dev_if_struct *usb_if) { SIM_SOPT7=0x80; /* PTB7 enables 5v on USB connector */ MXC_PTBPF1|=0x10; PTB_DD|=0x80; PTB_D|=0x80; (void)_bsp_usb_io_init(); return MQX_OK; }
_mqx_int _bsp_usb_dev_io_init ( struct usb_dev_if_struct *dev_if ) { if (dev_if->DEV_INIT_PARAM == &_khci0_dev_init_param) { _bsp_usb_io_init(); } else { return IO_ERROR; //unknown controller } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_dev_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_dev_init(struct usb_dev_if_struct *usb_if) { VMCF5329_STRUCT_PTR reg_ptr = _PSP_GET_IPSBAR(); uint_32 status; _bsp_usb_io_init(USB_CONNECTOR_OTG); /* setup interrupt */ status = _mcf5329_int_init(MCF5329_INT_USB_OTG, 2, TRUE); if (status != MQX_OK) { return -1; } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_init(pointer param) { uint_32 status; _bsp_usb_io_init(); // setup interrupt status = _bsp_int_init(MCF5225_INT_USB, 3, 0, TRUE); if (status != MQX_OK) { return -1; } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_host_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_host_init(struct usb_host_if_struct *usb_if) { VMCF5445_STRUCT_PTR reg_ptr = _PSP_GET_IPSBAR(); uint_32 status; _bsp_usb_io_init(USBCFG_USBOTG_CONNECTOR); // setup interrupt status = _mcf5445_int_init(MCF5445_INT_USB, 2, TRUE); if (status != MQX_OK) { return -1; } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_host_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_host_init(struct usb_host_if_struct *usb_if) { _mqx_int result = _bsp_usb_io_init(); if (result != MQX_OK) return result; /* Do not configure enable USB regulator for host */ // SIM_SOPT1_REG(SIM_BASE_PTR) |= SIM_SOPT1_USBREGEN_MASK; /* reset USB CTRL register */ USB_USBCTRL_REG(USB0_BASE_PTR) = 0; /* setup interrupt */ _bsp_int_init(INT_USB0, BSP_USB_INT_LEVEL, 0, TRUE); return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_host_init(pointer param) { VMCF5329_STRUCT_PTR reg_ptr = _PSP_GET_IPSBAR(); uint_32 status; host_device=1; _bsp_usb_io_init(USB_CONNECTOR_HOST); /* setup interrupt */ status = _mcf5329_int_init(MCF5329_INT_USB_HOST, 2, TRUE); if (status != MQX_OK) { return -1; } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_init(pointer param) { VMCF51JE_STRUCT_PTR reg_ptr = (VMCF51JE_STRUCT_PTR) BSP_IPSBAR; /* Enable USB clocking */ reg_ptr->SIM.SCGC2 |= MCF51XX_SCGC2_USB_MASK; /* Use little endian (because low level driver runs as low endian) */ reg_ptr->SIM.SOPT2 &= ~MCF51XX_SOPT2_USB_BIGEND_MASK; /* Reset USB peripheral */ reg_ptr->USBOTG.USBTRC0 |= USB_USBTRC0_USBRESET_MASK; /* Wait while resetting */ while (reg_ptr->USBOTG.USBTRC0 & USB_USBTRC0_USBRESET_MASK) {} /* Enable USB regulator and internal pull-up resitors */ reg_ptr->USBOTG.USBTRC0 |= USB_USBTRC0_USBVREN_MASK | USB_USBTRC0_USBPU_MASK; _bsp_usb_io_init(); return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_dev_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB device * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_dev_init ( struct usb_dev_if_struct *usb_if ) { /* Body */ VMCF5301_STRUCT_PTR reg_ptr = _PSP_GET_IPSBAR(); uint_32 status; _bsp_usb_io_init(0); /* setup interrupt */ status = _mcf5301_int_init(MCF5301_INT1_USB, 2, TRUE); if (status != MQX_OK) { return -1; } return MQX_OK; } /* Endbody */
_mqx_int _bsp_usb_host_io_init ( struct usb_host_if_struct *dev_if ) { if (dev_if->HOST_INIT_PARAM == &_khci0_host_init_param) { _bsp_usb_io_init(); /* Set pin to enable power supply to on board usb conector */ PORT_PCR_REG(PORTC_BASE_PTR, 9) = PORT_PCR_MUX(0x01) | PORT_PCR_PE_MASK; GPIO_PDDR_REG(PTC_BASE_PTR) |= 0x00000200; // PC9 as output GPIO_PDOR_REG(PTC_BASE_PTR) |= 0x00000200; // PC9 in high level } else { return IO_ERROR; //unknown controller } return MQX_OK; }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_dev_init * Returned Value : 0 for success, -1 for failure * Comments : * This function performs BSP-specific initialization related to USB * *END*----------------------------------------------------------------------*/ _mqx_int _bsp_usb_dev_init(pointer param) { _mqx_uint dev_num = (_mqx_uint) param; _mqx_int result = _bsp_usb_io_init(dev_num); if (result != MQX_OK) return result; if (dev_num == USBCFG_CONTROLLER_KHCI) { /* Configure enable USB regulator for device */ SIM_SOPT1CFG_REG(SIM_BASE_PTR) |= SIM_SOPT1CFG_URWE_MASK; SIM_SOPT1_REG(SIM_BASE_PTR) |= SIM_SOPT1_USBREGEN_MASK; /* Reset USB peripheral */ USB_USBTRC0_REG(USB0_BASE_PTR) |= USB_USBTRC0_USBRESET_MASK; /* Wait while resetting */ while (USB_USBTRC0_REG(USB0_BASE_PTR) & USB_USBTRC0_USBRESET_MASK) {} /* reset USB CTRL register */ USB_USBCTRL_REG(USB0_BASE_PTR) = 0; /* Enable internal pull-up resistor */ USB_CONTROL_REG(USB0_BASE_PTR) = USB_CONTROL_DPPULLUPNONOTG_MASK; USB_USBTRC0_REG(USB0_BASE_PTR) |= 0x40; /* Software must set this bit to 1 */ /* setup interrupt */ _bsp_int_init(INT_USB0, BSP_USB_INT_LEVEL, 0, TRUE); } else if (dev_num == USBCFG_CONTROLLER_EHCI) { } else { /* unknown controller */ result = IO_ERROR; } return MQX_OK; }