Commit Graph
30 Commits
Author SHA1 Message Date
David Sidrane f5ed7586bf boards common:Fix formating 2017-09-29 10:13:51 -04:00
David Sidrane b4a9c1578b board common:spi_dev_e is now uint32_t in NuttX
Using new type of uint32_t for spi device and macros
   that define a PX4 device on a given BUS and Chip Select
   Refactored to pack the PX4 format in the new NuttX format
2017-09-29 10:13:51 -04:00
David Sidrane 7a4c5c3475 Added board_read_VBUS_state to board_common API 2017-09-29 10:13:51 -04:00
David Sidrane c168bd248f Use Proper ponter conversion
When PX4_CPU_UUID_BYTE_FORMAT_ORDER is not defined properly
 cast the arument for calling board_get_uuid_raw
2017-09-29 10:13:51 -04:00
David Sidrane 99bce71003 board_common:px4io-v1:Removed px4io-v1 board from PX4
Only provide paths to px4io-v2 bin files.
2017-09-10 13:37:23 -04:00
David Sidrane 9644f855e3 common:Define default BOARD_NUMBER_I2C_BUSES and BOARD_I2C_BUS_CLOCK_INIT
Define the default I2C buss frequncies that are backward compatible
   with the existing code. While allowing it the defaults to be overridden
   by a board config.

   Based on the legacy STM32 code, the I2C buss numbering starts at 1.
   The bus frequency is stored in a 0 based array. If px4_i2cbus_initialize
   returns a valid device, then the _bus-1 will act as the index to the
   busses frequency.

   A board may define BOARD_NUMBER_I2C_BUSES - the number of I2C busses
   it supports* and BOARD_I2C_BUS_CLOCK_INIT to initalize the bus
   clocks for a given busses.

   BOARD_NUMBER_I2C_BUSES - the number of busses including the *highest
                            number bus. If the board has 2 I2C
                            busses I2C1 and I2C3 BOARD_NUMBER_I2C_BUSES
                            would be set to 3

   BOARD_I2C_BUS_CLOCK_INIT - Initalization for the bus frequencies
                              by bus. A call init, with a frequency
                              less then the value used for the
                              Initalization will result in the device
                              not starting becuase the buss runs too
                              fast for it.
2017-08-08 21:45:01 +02:00
David Sidrane dfdb61d2a7 board_common:Add support for simple hardware versioning
Define methods to get:
    1) The sub type of the hardware as a string.
    2) The version as an integer
    3) The revision as an integer
2017-08-05 19:26:20 +02:00
David Sidrane 910948cd7e board_common:Define defaults for Power Bricks and Sensor rail volatage
FMUv4Pro and FMUv5 Spec added multi brick support
   FMUv5 added SCALED_VDD_3V3_SENSORS

   This change provides legacy (FMUv2) defaults for Power Bricks and
   Sensor rail volatage source.
2017-07-17 21:02:50 -10:00
David Sidrane 68e5764dbc board common:Add arch agnostic gpio init 2017-07-17 21:02:50 -10:00
David Sidrane e967c2b340 board_common:Added new API point board_on_reset
This optionally provided function called on entry to
  board_system_reset. It should perform any house keeping
  prior to retunring to do the rest.
2017-05-03 08:33:05 +02:00
David Sidrane f7835a8677 io_timer driver:Only support capture if DIRECT_INPUT_TIMER_CHANNELS > 0
This removes the unused input capture capabilities from the px4io
   and saves 128 bytes of ram.
2017-05-02 07:40:50 +02:00
Beat Küng 0165633bf3 board_config: remove px4_board_pwr, use px4_shutdown_request instead
px4_board_pwr has become obsolete with the addition of board_shutdown
2017-04-20 10:01:51 +02:00
Beat Küng 25dfa9cda6 posix board_config.h: add include board_common.h
To get the new API definitions
2017-04-20 10:01:51 +02:00
David Sidrane 109db75881 Added board power button notification API
Defined types and interface to support a notification call back
   on power button events.
2017-04-20 10:01:51 +02:00
David Sidrane bc8b117e85 common board idenity cleanup and add mfguid to api
Remove the notion of legacy from the api. The board level code
   will perform the traslation to lecacy format on the STM32.
   new targets will not need to do this as there is no case
   where the serial number were used by mfg for tracking.

   Extend board common api to get mfguid and mfguid formatted

   This adds an api that return the MFGUID as an array of bytes
   or a string.

   The data is returned with the MSD at index 0 and the LSD at
   index PX4_CPU_MFGUID_BYTE_LENGTH-1.

   Removed all reodering defines from the api and hal
2017-02-04 22:27:04 +01:00
Lorenz Meier 1ad03ed8ef Common: Add support for power management (on / off) from the flight controller side 2017-02-04 21:06:21 +01:00
Lorenz Meier f7fa374656 Implement default board power control to allow software switch-off 2017-02-04 21:06:21 +01:00
David Sidrane 242f563d44 Adds a board common API for retriving the SoC' Silicon revision data/errata
This abstraction will support mcu's other than the stm32 family.
    It moves the systemlib/mcu_version.c functionality to
    common/stm32/board_mcu_version.c
2017-01-26 08:39:12 +01:00
David Sidrane bf0de997cb Adds a board common way of retriving the SoC' Unique identifier
This abstraction will support mcu's with longer ID's then the
   stm32 family.

   It provids a common interface for byte and 32 bit word access
   to the UUID data and a facility to reorder it.
2017-01-25 07:43:11 +01:00
David Sidrane 3692a62c35 Move board reset and entering bootloader to to board_common api
Define modes of reset and way to tell the system to enter
  the bootloader via an api defined in board_common.h

  If hardware or simulation deo not support the reset or
  bootloader API and can define BOARD_HAS_NO_RESET and
  BOARD_HAS_NO_BOOTLOADER respectivly.
2017-01-24 21:17:06 +01:00
David Sidrane 27abc4fe6b Moved BOARD_EEPROM_WP_CTRL further down in file (from rebase) 2017-01-21 11:45:36 +01:00
David Sidrane daba952ba9 Use the BOARD_USES_PX4IO_VERSION to set an overridable FW search path
1) Key the exsitance of the PX4IO HW based on BOARD_USES_PX4IO_VERSION
   2) Set default PX4IO_FW_SEARCH_PATHS based on verions of the PXPIO HW
   3) allow PX4IO_FW_SEARCH_PATHS to be overwritten if a board provides
      BOARD_PX4IO_FW_SEARCH_PATHS
2017-01-21 11:45:36 +01:00
David Sidrane a8b9c906f6 Board_config.h will provide the BOARD_BATTERYx_V_DIV
Prep to distrubte the magic numbers assgined in parameters.cpp
  to the board_config.h

  common/board_common.h will define:
  1) BOARD_BATTERY[1|2]_V_DIV as 0.0f if not defined to ensure
      the missing default trips a low voltage lockdown

  2) BOARD_BATTERY[1|2]_A_PER_V as 0.0f if not defined to ensure
     the default leads to an unrealistic current value.
2017-01-21 11:45:36 +01:00
David Sidrane 33486d5047 FMU gpio operations now conditional on BOARD_FMU_GPIO_TAB in board_config
return -EINVAL on any GPIO ioctl operation when there are
       no GPIO pins defined in the board config. I.E.
       BOARD_FMU_GPIO_TAB is not defined.

       BOARD_FMU_GPIO_TAB is now optional and if it is defined
       then the logical BOARD_HAS_FMU_GPIO is defined and
       will enable the px4fmu driver to perform the physical GPIO
       operations.
2017-01-21 11:45:36 +01:00
David Sidrane a5ec920756 Provide overridable default ADC Full scale Voltage and Scaling factors
This add the ability to override the defaults ADC values by
   defining values in board_config.h
2017-01-21 11:45:36 +01:00
David Sidrane 44cb1afa4d Provide an overidable nop default for BOARD_EEPROM_WP_CTRL
To simplify integration of an EEPROM device with a Write Protect
  control pin, we add an overidable BOARD_EEPROM_WP_CTRL macro
  the does nothing.

  A board that provids the GPIO for WP should define
  BOARD_EEPROM_WP_CTRL(_protected_true) that will set the WP GPIO
  to the Protected state when passed true.
2017-01-20 22:55:04 +01:00
Beat Küng c662113527 board_name.c: remove the file and HW_ARCH macro, use px4_board_name() instead
boards define BOARD_NAME, so board_name() is not necessary. HW_ARCH was
just a wrapper around board_name().

This patch simplifies to having only one common method px4_board_name().
2016-12-21 11:35:10 +01:00
David Sidrane ced8c6a2ef Changes to boards/common for upstream NuttX directory changes 2016-12-21 08:34:20 +01:00
David Sidrane a7946aa771 Fixed Spelling (#4713) 2016-06-01 06:35:42 -10:00
David Sidrane b54ec99d22 Move the DMA allocation to a common code and provide an instrumentation interface 2016-06-01 08:35:34 +02:00