diff --git a/boards/microbit/Makefile.dep b/boards/microbit/Makefile.dep index e54ceaf6ecb71770b2727908080e6c9d830d0b04..cb0306f5bf4e7139283aff33c993a9adbe282ead 100644 --- a/boards/microbit/Makefile.dep +++ b/boards/microbit/Makefile.dep @@ -5,6 +5,7 @@ endif ifneq (,$(filter saul_default,$(USEMODULE))) USEMODULE += saul_gpio + USEMODULE += mma8x5x endif ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE))) diff --git a/boards/microbit/include/board.h b/boards/microbit/include/board.h index c2c0d8daa48a874c34668619f6d6777c1e73fb2c..653428601393e53d365d83003a3230094d0b4616 100644 --- a/boards/microbit/include/board.h +++ b/boards/microbit/include/board.h @@ -69,7 +69,6 @@ extern "C" { */ #define MMA8X5X_PARAM_I2C I2C_DEV(0) #define MMA8X5X_PARAM_ADDR 0x1d -#define MMA8X5X_PARAM_TYPE 0x5a /** @} */ /** diff --git a/drivers/include/mma8x5x.h b/drivers/include/mma8x5x.h index 7c9abf29fa4c6cb1f13740e27def5812a05f0c63..fccc843a5a77f2175418339eb217ad916743a003 100644 --- a/drivers/include/mma8x5x.h +++ b/drivers/include/mma8x5x.h @@ -95,7 +95,6 @@ enum { typedef struct { i2c_t i2c; /**< I2C bus the device is connected to */ uint8_t addr; /**< I2C bus address of the device */ - uint8_t type; /**< device type */ uint8_t rate; /**< sampling rate to use */ uint8_t range; /**< scale range to use */ uint8_t offset[3]; /**< data offset in X, Y, and Z direction */ diff --git a/drivers/mma8x5x/include/mma8x5x_params.h b/drivers/mma8x5x/include/mma8x5x_params.h index e9170afb23fae85df1e816fe9bfa5c4593032a70..e2bc23969106adc27012a3d53c25ed25f2d665f7 100644 --- a/drivers/mma8x5x/include/mma8x5x_params.h +++ b/drivers/mma8x5x/include/mma8x5x_params.h @@ -37,9 +37,6 @@ extern "C" { #ifndef MMA8X5X_PARAM_ADDR #define MMA8X5X_PARAM_ADDR (MMA8X5X_I2C_ADDRESS) #endif -#ifndef MMA8X5X_PARAM_TYPE -#define MMA8X5X_PARAM_TYPE (MMA8X5X_TYPE_MMA8652) -#endif #ifndef MMA8X5X_PARAM_RATE #define MMA8X5X_PARAM_RATE (MMA8X5X_RATE_200HZ) #endif @@ -53,13 +50,12 @@ extern "C" { #ifndef MMA8X5X_PARAMS #define MMA8X5X_PARAMS { .i2c = MMA8X5X_PARAM_I2C, \ .addr = MMA8X5X_PARAM_ADDR, \ - .type = MMA8X5X_PARAM_TYPE, \ .rate = MMA8X5X_PARAM_RATE, \ .range = MMA8X5X_PARAM_RANGE, \ .offset = MMA8X5X_PARAM_OFFSET } #endif #ifndef MMA8X5X_SAUL_INFO -#define MMA8X5X_SAUL_INFO { .name = "mma8652" } +#define MMA8X5X_SAUL_INFO { .name = "mma8x5x" } #endif /**@}*/ diff --git a/drivers/mma8x5x/mma8x5x.c b/drivers/mma8x5x/mma8x5x.c index a18939cf822e13c5a69874320b1d48e5875eb4c8..3850d23453f2b22a699e8a4fcc3e2818c8cc75d6 100644 --- a/drivers/mma8x5x/mma8x5x.c +++ b/drivers/mma8x5x/mma8x5x.c @@ -51,11 +51,18 @@ int mma8x5x_init(mma8x5x_t *dev, const mma8x5x_params_t *params) /* test if the target device responds */ i2c_read_reg(BUS, ADDR, MMA8X5X_WHO_AM_I, ®, 0); - if (reg != dev->params.type) { - i2c_release(BUS); - DEBUG("[mma8x5x] init - error: invalid WHO_AM_I value [0x%02x]\n", - (int)reg); - return MMA8X5X_NODEV; + switch (reg) { + case MMA8X5X_TYPE_MMA8451: + case MMA8X5X_TYPE_MMA8452: + case MMA8X5X_TYPE_MMA8453: + case MMA8X5X_TYPE_MMA8652: + case MMA8X5X_TYPE_MMA8653: + break; + default: /* invalid device type */ + i2c_release(BUS); + DEBUG("[mma8x5x] init - error: invalid WHO_AM_I value [0x%02x]\n", + (int)reg); + return MMA8X5X_NODEV; } /* reset the device */ diff --git a/tests/driver_mma8x5x/Makefile b/tests/driver_mma8x5x/Makefile index e9fc4637bece54498b4e99236f303212b72d07b1..ffce5c5daed4e25af474c86c7dbbdc8679755cbb 100644 --- a/tests/driver_mma8x5x/Makefile +++ b/tests/driver_mma8x5x/Makefile @@ -1,6 +1,6 @@ include ../Makefile.tests_common -USEMODULE += mma8x5x +USEMODULE += mma8x5x # will work with all variants USEMODULE += xtimer include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_mma8x5x/README.md b/tests/driver_mma8x5x/README.md index e94a61c2f0982aa6dbe8f51fd2752cc4f2348aad..11c3bc3694eb0618afa0c9c6a5774872ea1fb45a 100644 --- a/tests/driver_mma8x5x/README.md +++ b/tests/driver_mma8x5x/README.md @@ -3,14 +3,13 @@ This is a manual test application for the MMA8x5x accelerometer driver. # Usage This test application will initialize the MMA8x5x sensor with the following parameters: - - default device type: MMA8652 - full scale parameter set to +/-2 g - 200 Hz output data-rate To change these parameters, you can override them by setting their corresponding defines in your build environment, e.g. ```bash -CFLAGS=-DMMA8X5X_PARAM_TYPE=MMA8X5X_TYPE_MMA8451 make ... +CFLAGS=-DMMA8X5X_PARAM_ADDR=0x1d make ... ``` See RIOT/drivers/mma8x5x_params.h for the default configuration.