diff options
Diffstat (limited to 'apps/drivers/boards')
-rw-r--r-- | apps/drivers/boards/px4fmu/px4fmu_adc.c | 19 | ||||
-rw-r--r-- | apps/drivers/boards/px4fmu/px4fmu_can.c | 47 | ||||
-rw-r--r-- | apps/drivers/boards/px4fmu/px4fmu_init.c | 264 | ||||
-rw-r--r-- | apps/drivers/boards/px4fmu/px4fmu_spi.c | 5 | ||||
-rw-r--r-- | apps/drivers/boards/px4fmu/px4fmu_usb.c | 16 |
5 files changed, 179 insertions, 172 deletions
diff --git a/apps/drivers/boards/px4fmu/px4fmu_adc.c b/apps/drivers/boards/px4fmu/px4fmu_adc.c index 2ea855955..987894163 100644 --- a/apps/drivers/boards/px4fmu/px4fmu_adc.c +++ b/apps/drivers/boards/px4fmu/px4fmu_adc.c @@ -99,25 +99,22 @@ int adc_devinit(void) /* Check if we have already initialized */ - if (!initialized) - { + if (!initialized) { char name[11]; - for (i = 0; i < ADC3_NCHANNELS; i++) - { - stm32_configgpio(g_pinlist[i]); + for (i = 0; i < ADC3_NCHANNELS; i++) { + stm32_configgpio(g_pinlist[i]); } - for (i = 0; i < 1; i++) - { + for (i = 0; i < 1; i++) { /* Configure the pins as analog inputs for the selected channels */ //stm32_configgpio(g_pinlist[i]); /* Call stm32_adcinitialize() to get an instance of the ADC interface */ //multiple channels only supported with dma! adc[i] = stm32_adcinitialize(3, (g_chanlist), 4); - if (adc == NULL) - { + + if (adc == NULL) { adbg("ERROR: Failed to get ADC interface\n"); return -ENODEV; } @@ -126,8 +123,8 @@ int adc_devinit(void) /* Register the ADC driver at "/dev/adc0" */ sprintf(name, "/dev/adc%d", i); ret = adc_register(name, adc[i]); - if (ret < 0) - { + + if (ret < 0) { adbg("adc_register failed for adc %s: %d\n", name, ret); return ret; } diff --git a/apps/drivers/boards/px4fmu/px4fmu_can.c b/apps/drivers/boards/px4fmu/px4fmu_can.c index 92d96e558..0d0b5fcd3 100644 --- a/apps/drivers/boards/px4fmu/px4fmu_can.c +++ b/apps/drivers/boards/px4fmu/px4fmu_can.c @@ -107,36 +107,35 @@ int can_devinit(void) { - static bool initialized = false; - struct can_dev_s *can; - int ret; + static bool initialized = false; + struct can_dev_s *can; + int ret; - /* Check if we have already initialized */ + /* Check if we have already initialized */ - if (!initialized) - { - /* Call stm32_caninitialize() to get an instance of the CAN interface */ + if (!initialized) { + /* Call stm32_caninitialize() to get an instance of the CAN interface */ - can = stm32_caninitialize(CAN_PORT); - if (can == NULL) - { - candbg("ERROR: Failed to get CAN interface\n"); - return -ENODEV; - } + can = stm32_caninitialize(CAN_PORT); - /* Register the CAN driver at "/dev/can0" */ + if (can == NULL) { + candbg("ERROR: Failed to get CAN interface\n"); + return -ENODEV; + } - ret = can_register("/dev/can0", can); - if (ret < 0) - { - candbg("ERROR: can_register failed: %d\n", ret); - return ret; - } + /* Register the CAN driver at "/dev/can0" */ - /* Now we are initialized */ + ret = can_register("/dev/can0", can); - initialized = true; - } + if (ret < 0) { + candbg("ERROR: can_register failed: %d\n", ret); + return ret; + } - return OK; + /* Now we are initialized */ + + initialized = true; + } + + return OK; } diff --git a/apps/drivers/boards/px4fmu/px4fmu_init.c b/apps/drivers/boards/px4fmu/px4fmu_init.c index ba6cdd764..e5ded7328 100644 --- a/apps/drivers/boards/px4fmu/px4fmu_init.c +++ b/apps/drivers/boards/px4fmu/px4fmu_init.c @@ -34,7 +34,7 @@ /** * @file px4fmu_init.c * - * PX4FMU-specific early startup code. This file implements the + * PX4FMU-specific early startup code. This file implements the * nsh_archinitialize() function that is called early by nsh during startup. * * Code here is run before the rcS script is invoked; it should start required @@ -115,11 +115,11 @@ extern int adc_devinit(void); __EXPORT void stm32_boardinitialize(void) { - /* configure SPI interfaces */ - stm32_spiinitialize(); + /* configure SPI interfaces */ + stm32_spiinitialize(); - /* configure LEDs */ - up_ledinit(); + /* configure LEDs */ + up_ledinit(); } /**************************************************************************** @@ -139,171 +139,179 @@ static struct i2c_dev_s *i2c3; #include <math.h> #ifdef __cplusplus -__EXPORT int matherr(struct __exception *e) { - return 1; +__EXPORT int matherr(struct __exception *e) +{ + return 1; } #else -__EXPORT int matherr(struct exception *e) { - return 1; +__EXPORT int matherr(struct exception *e) +{ + return 1; } #endif __EXPORT int nsh_archinitialize(void) { - int result; + int result; - /* INIT 1 Lowest level NuttX initialization has been done at this point, LEDs and UARTs are configured */ + /* INIT 1 Lowest level NuttX initialization has been done at this point, LEDs and UARTs are configured */ - /* INIT 2 Configuring PX4 low-level peripherals, these will be always needed */ + /* INIT 2 Configuring PX4 low-level peripherals, these will be always needed */ - /* configure the high-resolution time/callout interface */ + /* configure the high-resolution time/callout interface */ #ifdef CONFIG_HRT_TIMER - hrt_init(); + hrt_init(); #endif - /* configure CPU load estimation */ - #ifdef CONFIG_SCHED_INSTRUMENTATION - cpuload_initialize_once(); - #endif + /* configure CPU load estimation */ +#ifdef CONFIG_SCHED_INSTRUMENTATION + cpuload_initialize_once(); +#endif - /* set up the serial DMA polling */ + /* set up the serial DMA polling */ #ifdef SERIAL_HAVE_DMA - { - static struct hrt_call serial_dma_call; - struct timespec ts; - - /* - * Poll at 1ms intervals for received bytes that have not triggered - * a DMA event. - */ - ts.tv_sec = 0; - ts.tv_nsec = 1000000; - - hrt_call_every(&serial_dma_call, - ts_to_abstime(&ts), - ts_to_abstime(&ts), - (hrt_callout)stm32_serial_dma_poll, - NULL); - } + { + static struct hrt_call serial_dma_call; + struct timespec ts; + + /* + * Poll at 1ms intervals for received bytes that have not triggered + * a DMA event. + */ + ts.tv_sec = 0; + ts.tv_nsec = 1000000; + + hrt_call_every(&serial_dma_call, + ts_to_abstime(&ts), + ts_to_abstime(&ts), + (hrt_callout)stm32_serial_dma_poll, + NULL); + } #endif - message("\r\n"); + message("\r\n"); + + up_ledoff(LED_BLUE); + up_ledoff(LED_AMBER); - up_ledoff(LED_BLUE); - up_ledoff(LED_AMBER); + up_ledon(LED_BLUE); - up_ledon(LED_BLUE); + /* Configure user-space led driver */ + px4fmu_led_init(); - /* Configure user-space led driver */ - px4fmu_led_init(); + /* Configure SPI-based devices */ - /* Configure SPI-based devices */ + spi1 = up_spiinitialize(1); - spi1 = up_spiinitialize(1); - if (!spi1) - { - message("[boot] FAILED to initialize SPI port 1\r\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } + if (!spi1) { + message("[boot] FAILED to initialize SPI port 1\r\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } - // Default SPI1 to 1MHz and de-assert the known chip selects. - SPI_SETFREQUENCY(spi1, 10000000); - SPI_SETBITS(spi1, 8); - SPI_SETMODE(spi1, SPIDEV_MODE3); - SPI_SELECT(spi1, PX4_SPIDEV_GYRO, false); - SPI_SELECT(spi1, PX4_SPIDEV_ACCEL, false); - SPI_SELECT(spi1, PX4_SPIDEV_MPU, false); - up_udelay(20); + // Default SPI1 to 1MHz and de-assert the known chip selects. + SPI_SETFREQUENCY(spi1, 10000000); + SPI_SETBITS(spi1, 8); + SPI_SETMODE(spi1, SPIDEV_MODE3); + SPI_SELECT(spi1, PX4_SPIDEV_GYRO, false); + SPI_SELECT(spi1, PX4_SPIDEV_ACCEL, false); + SPI_SELECT(spi1, PX4_SPIDEV_MPU, false); + up_udelay(20); - message("[boot] Successfully initialized SPI port 1\r\n"); + message("[boot] Successfully initialized SPI port 1\r\n"); - /* initialize I2C2 bus */ + /* initialize I2C2 bus */ - i2c2 = up_i2cinitialize(2); - if (!i2c2) { - message("[boot] FAILED to initialize I2C bus 2\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } + i2c2 = up_i2cinitialize(2); - /* set I2C2 speed */ - I2C_SETFREQUENCY(i2c2, 400000); + if (!i2c2) { + message("[boot] FAILED to initialize I2C bus 2\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } + /* set I2C2 speed */ + I2C_SETFREQUENCY(i2c2, 400000); - i2c3 = up_i2cinitialize(3); - if (!i2c3) { - message("[boot] FAILED to initialize I2C bus 3\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } - /* set I2C3 speed */ - I2C_SETFREQUENCY(i2c3, 400000); + i2c3 = up_i2cinitialize(3); - /* try to attach, don't fail if device is not responding */ - (void)eeprom_attach(i2c3, FMU_BASEBOARD_EEPROM_ADDRESS, - FMU_BASEBOARD_EEPROM_TOTAL_SIZE_BYTES, - FMU_BASEBOARD_EEPROM_PAGE_SIZE_BYTES, - FMU_BASEBOARD_EEPROM_PAGE_WRITE_TIME_US, "/dev/baseboard_eeprom", 1); + if (!i2c3) { + message("[boot] FAILED to initialize I2C bus 3\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } + + /* set I2C3 speed */ + I2C_SETFREQUENCY(i2c3, 400000); + + /* try to attach, don't fail if device is not responding */ + (void)eeprom_attach(i2c3, FMU_BASEBOARD_EEPROM_ADDRESS, + FMU_BASEBOARD_EEPROM_TOTAL_SIZE_BYTES, + FMU_BASEBOARD_EEPROM_PAGE_SIZE_BYTES, + FMU_BASEBOARD_EEPROM_PAGE_WRITE_TIME_US, "/dev/baseboard_eeprom", 1); #if defined(CONFIG_STM32_SPI3) - /* Get the SPI port */ - - message("[boot] Initializing SPI port 3\n"); - spi3 = up_spiinitialize(3); - if (!spi3) - { - message("[boot] FAILED to initialize SPI port 3\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } - message("[boot] Successfully initialized SPI port 3\n"); - - /* Now bind the SPI interface to the MMCSD driver */ - result = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, CONFIG_NSH_MMCSDSLOTNO, spi3); - if (result != OK) - { - message("[boot] FAILED to bind SPI port 3 to the MMCSD driver\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } - message("[boot] Successfully bound SPI port 3 to the MMCSD driver\n"); + /* Get the SPI port */ + + message("[boot] Initializing SPI port 3\n"); + spi3 = up_spiinitialize(3); + + if (!spi3) { + message("[boot] FAILED to initialize SPI port 3\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } + + message("[boot] Successfully initialized SPI port 3\n"); + + /* Now bind the SPI interface to the MMCSD driver */ + result = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, CONFIG_NSH_MMCSDSLOTNO, spi3); + + if (result != OK) { + message("[boot] FAILED to bind SPI port 3 to the MMCSD driver\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } + + message("[boot] Successfully bound SPI port 3 to the MMCSD driver\n"); #endif /* SPI3 */ - /* initialize I2C1 bus */ + /* initialize I2C1 bus */ - i2c1 = up_i2cinitialize(1); - if (!i2c1) { - message("[boot] FAILED to initialize I2C bus 1\n"); - up_ledon(LED_AMBER); - return -ENODEV; - } + i2c1 = up_i2cinitialize(1); - /* set I2C1 speed */ - I2C_SETFREQUENCY(i2c1, 400000); + if (!i2c1) { + message("[boot] FAILED to initialize I2C bus 1\n"); + up_ledon(LED_AMBER); + return -ENODEV; + } - /* INIT 3: MULTIPORT-DEPENDENT INITIALIZATION */ + /* set I2C1 speed */ + I2C_SETFREQUENCY(i2c1, 400000); - /* Get board information if available */ + /* INIT 3: MULTIPORT-DEPENDENT INITIALIZATION */ - /* Initialize the user GPIOs */ - px4fmu_gpio_init(); + /* Get board information if available */ + + /* Initialize the user GPIOs */ + px4fmu_gpio_init(); #ifdef CONFIG_ADC - int adc_state = adc_devinit(); - if (adc_state != OK) - { - /* Try again */ - adc_state = adc_devinit(); - if (adc_state != OK) - { - /* Give up */ - message("[boot] FAILED adc_devinit: %d\n", adc_state); - return -ENODEV; - } - } + int adc_state = adc_devinit(); + + if (adc_state != OK) { + /* Try again */ + adc_state = adc_devinit(); + + if (adc_state != OK) { + /* Give up */ + message("[boot] FAILED adc_devinit: %d\n", adc_state); + return -ENODEV; + } + } + #endif - return OK; + return OK; } diff --git a/apps/drivers/boards/px4fmu/px4fmu_spi.c b/apps/drivers/boards/px4fmu/px4fmu_spi.c index fbb6191d6..70245a3ec 100644 --- a/apps/drivers/boards/px4fmu/px4fmu_spi.c +++ b/apps/drivers/boards/px4fmu/px4fmu_spi.c @@ -95,21 +95,24 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, stm32_gpiowrite(GPIO_SPI_CS_MPU, selected); stm32_gpiowrite(GPIO_SPI_CS_ACCEL, selected); break; + case PX4_SPIDEV_ACCEL: /* Making sure the other peripherals are not selected */ stm32_gpiowrite(GPIO_SPI_CS_ACCEL, !selected); stm32_gpiowrite(GPIO_SPI_CS_MPU, selected); stm32_gpiowrite(GPIO_SPI_CS_GYRO, selected); break; + case PX4_SPIDEV_MPU: /* Making sure the other peripherals are not selected */ stm32_gpiowrite(GPIO_SPI_CS_ACCEL, selected); stm32_gpiowrite(GPIO_SPI_CS_GYRO, selected); stm32_gpiowrite(GPIO_SPI_CS_MPU, !selected); break; + default: break; - + } } diff --git a/apps/drivers/boards/px4fmu/px4fmu_usb.c b/apps/drivers/boards/px4fmu/px4fmu_usb.c index d635e719b..b0b669fbe 100644 --- a/apps/drivers/boards/px4fmu/px4fmu_usb.c +++ b/apps/drivers/boards/px4fmu/px4fmu_usb.c @@ -77,16 +77,16 @@ __EXPORT void stm32_usbinitialize(void) { - /* The OTG FS has an internal soft pull-up */ + /* The OTG FS has an internal soft pull-up */ - /* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */ + /* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */ #ifdef CONFIG_STM32_OTGFS - stm32_configgpio(GPIO_OTGFS_VBUS); - /* XXX We only support device mode - stm32_configgpio(GPIO_OTGFS_PWRON); - stm32_configgpio(GPIO_OTGFS_OVER); - */ + stm32_configgpio(GPIO_OTGFS_VBUS); + /* XXX We only support device mode + stm32_configgpio(GPIO_OTGFS_PWRON); + stm32_configgpio(GPIO_OTGFS_OVER); + */ #endif } @@ -103,6 +103,6 @@ __EXPORT void stm32_usbinitialize(void) __EXPORT void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume) { - ulldbg("resume: %d\n", resume); + ulldbg("resume: %d\n", resume); } |