| STMicroelectronics mag40 magnetometer sensor device driver for Google nanohub. |
| |
| This drivers support following devices: |
| - LSM303AGR |
| - LSM303AH |
| - LIS2MDL |
| |
| - Supported features: |
| |
| A. Reports geomagnetic field vector data |
| B. Different data rates: 10/20/50/100 Hz |
| C. I2C protocol |
| D. Data ready reported by interrupt |
| |
| |
| - Platform/variant porting: |
| |
| The driver requires that following macros are defined in the variant.h |
| file of the specific variant: |
| |
| ST_MAG40_CAL_ENABLED /* specify whether the magnetic calibration API must be included */ |
| |
| ST_MAG40_I2C_BUS_ID /* specify I2C Bus ID */ |
| ST_MAG40_I2C_SPEED /* specify I2C Bus speed in hz */ |
| ST_MAG40_I2C_ADDR /* specify device I2C address */ |
| |
| ST_MAG40_INT_PIN /* specify the gpio used for the DRDY irq */ |
| ST_MAG40_INT_IRQ /* specify the exti interrupt of ST_MAG40_INT_PIN */ |
| ST_MAG40_ROT_MATRIX /* specify how axis has to be rotated according to variant platform |
| * orientation. |
| * |
| * = r11, r12, r13, r21, r22, r23, r31, r32, r33 |
| * |
| * Rotation: |
| * |
| * [x'] [r11 r12 r13] [x] [r11*x + r12*y +r13*z] |
| * [y'] = [r21 r22 r23] * [y] = [r21*x + r22*y +r23*z] |
| * [z'] [r31 r32 r33] [x] [r31*x + r32*y +r33*z] |
| */ |
| |
| Example: |
| |
| /* |
| * Define platform/variant dependent ST_MAG40 device macros |
| */ |
| #define ST_MAG40_CAL_ENABLED 1 |
| |
| /* I2C defs to be used when device is plugged on U4 slot */ |
| #define ST_MAG40_I2C_BUS_ID 0 |
| #define ST_MAG40_I2C_SPEED 400000 |
| #define ST_MAG40_I2C_ADDR 0x1E |
| |
| #define ST_MAG40_INT_PIN GPIO_PB(4) |
| #define ST_MAG40_INT_IRQ EXTI4_IRQn |
| |
| #define ST_MAG40_ROT_MATRIX 0, 1, 0, 1, 0, 0, 0, 0, 1 |
| |
| If these macros are not defined in the current variant the driver forces a compilation |
| error. |