示例#1
0
  static bool lpc32xx_uart_probe_6(rtems_termios_device_context *context)
  {
    /* Bypass the IrDA modulator/demodulator */
    LPC32XX_UART_CTRL |= BSP_BIT32(5);

    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(3);
    LPC32XX_U6CLK = LPC32XX_CONFIG_U6CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 10, 11);

    return ns16550_probe(context);
  }
示例#2
0
  static bool lpc32xx_uart_probe_6(int minor)
  {
    /* Bypass the IrDA modulator/demodulator */
    LPC32XX_UART_CTRL |= BSP_BIT32(5);

    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(3);
    LPC32XX_U6CLK = LPC32XX_CONFIG_U6CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 10, 11);

    return true;
  }
示例#3
0
rtems_status_code qoriq_pic_set_affinity(
    rtems_vector_number vector,
    uint32_t processor_index
)
{
    return qoriq_pic_set_affinities(vector, BSP_BIT32(processor_index));
}
示例#4
0
  static bool lpc32xx_uart_probe_4(rtems_termios_device_context *context)
  {
    volatile lpc32xx_gpio *gpio = &lpc32xx.gpio;

    /*
     * Set GPO_21/U4_TX/LCDVD[3] to U4_TX.  This works only if LCD module is
     * disabled.
     */
    gpio->p2_mux_set = BSP_BIT32(2);

    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(1);
    LPC32XX_U4CLK = LPC32XX_CONFIG_U4CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 6, 7);

    return ns16550_probe(context);
  }
示例#5
0
  static bool lpc32xx_uart_probe_4(int minor)
  {
    volatile lpc32xx_gpio *gpio = &lpc32xx.gpio;

    /*
     * Set GPO_21/U4_TX/LCDVD[3] to U4_TX.  This works only if LCD module is
     * disabled.
     */
    gpio->p2_mux_set = BSP_BIT32(2);

    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(1);
    LPC32XX_U4CLK = LPC32XX_CONFIG_U4CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 6, 7);

    return true;
  }
示例#6
0
  static bool lpc32xx_uart_probe_3(rtems_termios_device_context *context)
  {
    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(0);
    LPC32XX_U3CLK = LPC32XX_CONFIG_U3CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 4, 5);

    return ns16550_probe(context);
  }
示例#7
0
  static bool lpc32xx_uart_probe_3(int minor)
  {
    LPC32XX_UARTCLK_CTRL |= BSP_BIT32(0);
    LPC32XX_U3CLK = LPC32XX_CONFIG_U3CLK;
    LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 4, 5);

    return true;
  }
示例#8
0
rtems_status_code qoriq_pic_set_affinity(
    rtems_vector_number vector,
    uint32_t processor_index
)
{
    rtems_status_code sc = RTEMS_SUCCESSFUL;

    if (bsp_interrupt_is_valid_vector(vector)) {
        if (processor_index <= 1) {
            int offs = (vpr_and_dr_offsets [vector] << 2) + 4;
            volatile uint32_t *dr = (volatile uint32_t *) &qoriq.pic + offs;

            *dr = BSP_BIT32(processor_index);
        } else {
            sc = RTEMS_INVALID_NUMBER;
        }
    } else {
        sc = RTEMS_INVALID_ID;
    }

    return sc;
}