int board_app_initialize(uintptr_t arg) { int ret; #ifdef HAVE_LEDS /* Register the LED driver */ ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); return ret; } #endif #ifdef CONFIG_PWM /* Initialize PWM and register the PWM device. */ ret = stm32_pwm_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_pwm_setup() failed: %d\n", ret); } #endif UNUSED(ret); return OK; }
int board_app_initialize(uintptr_t arg) { int ret; #ifdef HAVE_LEDS /* Register the LED driver */ ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); return ret; } #endif #ifdef CONFIG_PWM /* Initialize PWM and register the PWM device. */ ret = stm32_pwm_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_pwm_setup() failed: %d\n", ret); } #endif /* Contrairement à l'ADC, il n'y a pas de BOARDIOC_DAC_SETUP spécifique. Il * faut le faire ici */ #ifdef HAVE_DAC ret = board_dac_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: board_dac_setup() failed: %d\n", ret); return ret; } #endif #ifdef CONFIG_ADC /* Initialize ADC and register the ADC driver. */ ret = stm32_adc_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_adc_setup failed: %d\n", ret); } #endif #ifdef CONFIG_CAN /* Initialize CAN and register the CAN driver. */ ret = stm32_can_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_can_setup failed: %d\n", ret); } #endif UNUSED(ret); return OK; }
int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER FAR struct rtc_lowerhalf_s *rtclower; #endif #ifdef CONFIG_SENSORS_QENCODER int index; char buf[9]; #endif int ret; (void)ret; #ifdef HAVE_PROC /* Mount the proc filesystem */ syslog(LOG_INFO, "Mounting procfs to /proc\n"); ret = mount(NULL, CONFIG_NSH_PROC_MOUNTPOINT, "procfs", 0, NULL); if (ret < 0) { syslog(LOG_ERR, "ERROR: Failed to mount the PROC filesystem: %d (%d)\n", ret, errno); return ret; } #endif #if !defined(CONFIG_ARCH_LEDS) && defined(CONFIG_USERLED_LOWER) /* Register the LED driver */ ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); } #endif #ifdef HAVE_RTC_DRIVER /* Instantiate the STM32L4 lower-half RTC driver */ rtclower = stm32l4_rtc_lowerhalf(); if (!rtclower) { serr("ERROR: Failed to instantiate the RTC lower-half driver\n"); return -ENOMEM; } else { /* Bind the lower half driver and register the combined RTC driver * as /dev/rtc0 */ ret = rtc_initialize(0, rtclower); if (ret < 0) { serr("ERROR: Failed to bind/register the RTC driver: %d\n", ret); return ret; } } #endif #ifdef HAVE_MMCSD /* First, get an instance of the SDIO interface */ g_sdio = sdio_initialize(CONFIG_NSH_MMCSDSLOTNO); if (!g_sdio) { syslog(LOG_ERR, "ERROR: Failed to initialize SDIO slot %d\n", CONFIG_NSH_MMCSDSLOTNO); return -ENODEV; } /* Now bind the SDIO interface to the MMC/SD driver */ ret = mmcsd_slotinitialize(CONFIG_NSH_MMCSDMINOR, g_sdio); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to bind SDIO to the MMC/SD driver: %d\n", ret); return ret; } /* Then let's guess and say that there is a card in the slot. There is no * card detect GPIO. */ sdio_mediachange(g_sdio, true); syslog(LOG_INFO, "[boot] Initialized SDIO\n"); #endif #ifdef CONFIG_PWM /* Initialize PWM and register the PWM device. */ ret = stm32l4_pwm_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32l4_pwm_setup() failed: %d\n", ret); } #endif #ifdef CONFIG_ADC /* Initialize ADC and register the ADC driver. */ ret = stm32l4_adc_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32l4_adc_setup failed: %d\n", ret); } #endif #ifdef CONFIG_TIMER /* Initialize and register the timer driver */ ret = board_timer_driver_initialize("/dev/timer0", 2); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the timer driver: %d\n", ret); return ret; } #endif #ifdef CONFIG_SENSORS_QENCODER /* Initialize and register the qencoder driver */ index = 0; #ifdef CONFIG_STM32L4_TIM1_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 1); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #ifdef CONFIG_STM32L4_TIM2_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 2); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #ifdef CONFIG_STM32L4_TIM3_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 3); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #ifdef CONFIG_STM32L4_TIM4_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 4); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #ifdef CONFIG_STM32L4_TIM5_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 5); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #ifdef CONFIG_STM32L4_TIM8_QE sprintf(buf, "/dev/qe%d", index++); ret = stm32l4_qencoder_initialize(buf, 8); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to register the qencoder: %d\n", ret); return ret; } #endif #endif UNUSED(ret); return OK; }
int stm32_bringup(void) { #ifdef CONFIG_ONESHOT struct oneshot_lowerhalf_s *os = NULL; #endif int ret = OK; #ifdef CONFIG_PWM /* Initialize PWM and register the PWM device. */ ret = stm32_pwm_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_pwm_setup() failed: %d\n", ret); } #endif #ifdef CONFIG_AUDIO_TONE /* Configure and initialize the tone generator. */ ret = stm32_tone_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_tone_setup() failed: %d\n", ret); } #endif #ifdef CONFIG_RGBLED /* Configure and initialize the RGB LED. */ ret = stm32_rgbled_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_rgbled_setup() failed: %d\n", ret); } #endif #ifdef CONFIG_CL_MFRC522 ret = stm32_mfrc522initialize("/dev/rfid0"); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_mfrc522initialize() failed: %d\n", ret); } #endif #ifdef CONFIG_ONESHOT os = oneshot_initialize(1, 10); if (os) { ret = oneshot_register("/dev/oneshot", os); } #endif #ifdef CONFIG_BUTTONS /* Register the BUTTON driver */ ret = btn_lower_initialize("/dev/buttons"); if (ret < 0) { syslog(LOG_ERR, "ERROR: btn_lower_initialize() failed: %d\n", ret); } #endif #ifdef CONFIG_USERLED /* Register the LED driver */ ret = userled_lower_initialize("/dev/userleds"); if (ret < 0) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); } #endif #ifdef CONFIG_VEML6070 /* Register the UV-A light sensor */ ret = stm32_veml6070initialize("/dev/uvlight0"); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_veml6070initialize() failed: %d\n", ret); } #endif return ret; }
int board_app_initialize(uintptr_t arg) { int ret; #ifdef CONFIG_FS_PROCFS /* Mount the procfs file system */ ret = mount(NULL, STM32_PROCFS_MOUNTPOINT, "procfs", 0, NULL); if (ret < 0) { syslog(LOG_ERR, "ERROR: Failed to mount procfs at %s: %d\n", STM32_PROCFS_MOUNTPOINT, ret); } #endif #if !defined(CONFIG_ARCH_LEDS) && defined(CONFIG_USERLED_LOWER) /* Register the LED driver */ ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); } #endif #ifdef CONFIG_ADC /* Initialize ADC and register the ADC driver. */ ret = stm32_adc_setup(); if (ret < 0) { syslog(LOG_ERR, "ERROR: stm32_adc_setup failed: %d\n", ret); } #endif #ifdef CONFIG_STM32F7_BBSRAM /* Initialize battery-backed RAM */ (void)stm32_bbsram_int(); #endif #if defined(CONFIG_FAT_DMAMEMORY) if (stm32_dma_alloc_init() < 0) { syslog(LOG_ERR, "DMA alloc FAILED"); } #endif #if defined(CONFIG_NUCLEO_SPI_TEST) /* Create SPI interfaces */ ret = stm32_spidev_bus_test(); if (ret != OK) { syslog(LOG_ERR, "ERROR: Failed to initialize SPI interfaces: %d\n", ret); return ret; } #endif #if defined(CONFIG_MMCSD) /* Configure SDIO */ /* Initialize the SDIO block driver */ ret = stm32_sdio_initialize(); if (ret != OK) { ferr("ERROR: Failed to initialize MMC/SD driver: %d\n", ret); return ret; } #endif UNUSED(ret); return OK; }
int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER FAR struct rtc_lowerhalf_s *rtclower; #endif int ret; #ifdef HAVE_PROC /* mount the proc filesystem */ syslog(LOG_INFO, "Mounting procfs to /proc\n"); ret = mount(NULL, CONFIG_NSH_PROC_MOUNTPOINT, "procfs", 0, NULL); if (ret < 0) { syslog(LOG_ERR, "ERROR: Failed to mount the PROC filesystem: %d (%d)\n", ret, errno); return ret; } #endif #ifdef HAVE_RTC_DRIVER /* Instantiate the STM32 lower-half RTC driver */ rtclower = stm32l4_rtc_lowerhalf(); if (!rtclower) { syslog(LOG_ERR, "ERROR: Failed to instantiate the RTC lower-half driver\n"); return -ENOMEM; } else { /* Bind the lower half driver and register the combined RTC driver * as /dev/rtc0 */ ret = rtc_initialize(0, rtclower); if (ret < 0) { syslog(LOG_ERR, "ERROR: Failed to bind/register the RTC driver: %d\n", ret); return ret; } } #endif #ifdef HAVE_USERLED_DRIVER /* Register the LED driver */ ret = userled_lower_initialize("/dev/userleds"); if (ret != OK) { syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); return ret; } #endif UNUSED(ret); return OK; }