Example #1
0
/*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;
}
Example #2
0
/*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;
}
Example #3
0
_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;
}
Example #5
0
_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;
}
Example #6
0
/*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;
}
Example #7
0
/*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;
}
Example #8
0
/*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;
}
Example #9
0
/*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;
}
Example #10
0
/*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;
}
Example #11
0
/*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;
}
Example #12
0
/*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 */
Example #13
0
_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;
}
Example #14
0
/*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;
}