rtems_status_code can_open( const lpc176x_can_number minor, can_freq freq ) { const can_driver_entry *const can_driver = &can_driver_table[ minor ]; rtems_status_code sc = RTEMS_INVALID_NUMBER; if ( CAN_DRIVER_IS_MINOR_VALID( minor ) ) { /*Enable CAN and acceptance filter modules.*/ sc = lpc176x_module_enable( can_driver->module, LPC176X_MODULE_PCLK_DEFAULT ); RTEMS_CHECK_SC( sc, "enable can module" ); sc = lpc176x_module_enable( LPC176X_MODULE_ACCF, LPC176X_MODULE_PCLK_DEFAULT ); RTEMS_CHECK_SC( sc, "enable acceptance filter" ); /*Set pin functions.*/ setpins( minor ); can_reset( can_driver ); can_driver->device->IER = CAN_DEFAULT_INTERRUPT_CONFIGURATION; sc = can_frequency( can_driver, freq ); RTEMS_CHECK_SC( sc, "Configure CAN frequency" ); can_initialize(); acceptance_filter_device->AFMR = CAN_ACCF_AFMR_ACCBP; /*Bypass Filter.*/ } return sc; }
static bool lpc176x_uart3_probe(rtems_termios_device_context *ctx) { (void)ctx; lpc176x_module_enable( LPC176X_MODULE_UART_3, LPC176X_MODULE_PCLK_DEFAULT ); lpc176x_pin_select( LPC176X_PIN_UART_3_TXD, LPC176X_PIN_FUNCTION_10 ); lpc176x_pin_select( LPC176X_PIN_UART_3_RXD, LPC176X_PIN_FUNCTION_10 ); return true; }
/** * @brief Initialize the rtc device. */ void bsp_rtc_initialize( void ) { /* Enable module power */ lpc176x_module_enable( LPC176X_MODULE_RTC, LPC176X_MODULE_PCLK_DEFAULT ); /* Enable the RTC and use external clock */ RTC_CCR = RTC_CCR_CLKEN | RTC_CCR_CLKSRC; /* Disable interrupts */ RTC_CIIR = 0U; RTC_CISS = 0U; RTC_AMR = 0xFFU; /* Clear interrupts */ RTC_ILR = RTC_ILR_RTCCIF | RTC_ILR_RTCALF | RTC_ILR_RTSSF; }
/** * @brief Enables the watchdog module, sets wd clock and wd timer. * * @param tcount Timer's out value. * @return RTEMS_SUCCESSFUL if the configuration was done successfully. */ static inline rtems_status_code enable_module_and_set_clocksel( const lpc176x_microseconds tcount ) { rtems_status_code status_code; /* Sets clock. */ LPC176X_WDCLKSEL = LPC176X_WWDT_CLKSEL_WDSEL_PCLK; /* Enables the watchdog module. */ status_code = lpc176x_module_enable( LPC176X_MODULE_WD, LPC176X_MODULE_PCLK_DEFAULT ); RTEMS_CHECK_SC( status_code, "Enabling the watchdog module." ); /* Set the watchdog timer constant value. */ LPC176X_WDTC = ( LPC176X_CCLK / LPC176X_WD_PRESCALER_DIVISOR ) * tcount; return status_code; }