<!DOCTYPE module SYSTEM "module.dtd">

<module name="imu_aspirin_v2_common">
  <doc>
    <description>
      Common functionality of Aspirin v2 IMUs.
      - Accelerometer/Gyroscope: MPU6000 via SPI
      - Magnetometer: HMC5883 as I2C slave of MPU
    </description>
    <configure name="ASPIRIN_2_SPI_DEV" value="spi2" description="SPI device to use for accel"/>
    <configure name="ASPIRIN_2_SPI_SLAVE_IDX" value="SPI_SLAVE2" description="slave index of the accel CS pin"/>
    <define name="ASPIRIN_2_DISABLE_MAG" value="FALSE" description="set to TRUE to disable the mag on Aspirin"/>
    <section name="IMU" prefix="IMU_">
      <define name="MAG_X_NEUTRAL" value="2358"/>
      <define name="MAG_Y_NEUTRAL" value="2362"/>
      <define name="MAG_Z_NEUTRAL" value="2119"/>

      <define name="MAG_X_SENS" value="3.4936416" integer="16"/>
      <define name="MAG_Y_SENS" value="3.607713" integer="16"/>
      <define name="MAG_Z_SENS" value="4.90788848" integer="16"/>
    </section>
  </doc>
  <autoload name="imu_common"/>
  <autoload name="imu_nps"/>
  <header>
    <file name="imu_aspirin_2_spi.h" dir="subsystems/imu"/>
  </header>
  <init fun="imu_aspirin2_init()"/>
  <periodic fun="imu_aspirin2_periodic()"/>
  <event fun="imu_aspirin2_event()"/>
  <makefile target="!sim|nps|fbw|hitl">
    <!-- default for stm32, do we want to provide i2c0,spi1,SPI_SLAVE0 defaults for lpc again?-->
    <configure name="ASPIRIN_2_SPI_DEV" default="spi2" case="lower|upper"/>
    <configure name="ASPIRIN_2_SPI_SLAVE_IDX" default="SPI_SLAVE2"/>

    <define name="ASPIRIN_2_SPI_DEV" value="$(ASPIRIN_2_SPI_DEV_LOWER)"/>
    <define name="USE_$(ASPIRIN_2_SPI_DEV_UPPER)"/>
    <define name="ASPIRIN_2_SPI_SLAVE_IDX" value="$(ASPIRIN_2_SPI_SLAVE_IDX)"/>
    <define name="USE_$(ASPIRIN_2_SPI_SLAVE_IDX)"/>

    <define name="IMU_TYPE_H" value="subsystems/imu/imu_aspirin_2_spi.h" type="string"/>

    <file name="mpu60x0.c" dir="peripherals"/>
    <file name="mpu60x0_spi.c" dir="peripherals"/>
    <file name="imu_aspirin_2_spi.c" dir="subsystems/imu"/>
    <raw>
      include $(CFG_SHARED)/spi_master.makefile
    </raw>
  </makefile>
</module>
