|
@@ -45,6 +45,46 @@
|
|
|
#define ST_MAGN_FS_AVL_12000MG 12000
|
|
|
#define ST_MAGN_FS_AVL_16000MG 16000
|
|
|
|
|
|
+/* CUSTOM VALUES FOR SENSOR 0 */
|
|
|
+#define ST_MAGN_0_ODR_ADDR 0x00
|
|
|
+#define ST_MAGN_0_ODR_MASK 0x1c
|
|
|
+#define ST_MAGN_0_ODR_AVL_1HZ_VAL 0x00
|
|
|
+#define ST_MAGN_0_ODR_AVL_2HZ_VAL 0x01
|
|
|
+#define ST_MAGN_0_ODR_AVL_3HZ_VAL 0x02
|
|
|
+#define ST_MAGN_0_ODR_AVL_8HZ_VAL 0x03
|
|
|
+#define ST_MAGN_0_ODR_AVL_15HZ_VAL 0x04
|
|
|
+#define ST_MAGN_0_ODR_AVL_30HZ_VAL 0x05
|
|
|
+#define ST_MAGN_0_ODR_AVL_75HZ_VAL 0x06
|
|
|
+#define ST_MAGN_0_ODR_AVL_220HZ_VAL 0x07
|
|
|
+#define ST_MAGN_0_PW_ADDR 0x02
|
|
|
+#define ST_MAGN_0_PW_MASK 0x03
|
|
|
+#define ST_MAGN_0_PW_ON 0x00
|
|
|
+#define ST_MAGN_0_PW_OFF 0x03
|
|
|
+#define ST_MAGN_0_FS_ADDR 0x01
|
|
|
+#define ST_MAGN_0_FS_MASK 0xe0
|
|
|
+#define ST_MAGN_0_FS_AVL_1300_VAL 0x01
|
|
|
+#define ST_MAGN_0_FS_AVL_1900_VAL 0x02
|
|
|
+#define ST_MAGN_0_FS_AVL_2500_VAL 0x03
|
|
|
+#define ST_MAGN_0_FS_AVL_4000_VAL 0x04
|
|
|
+#define ST_MAGN_0_FS_AVL_4700_VAL 0x05
|
|
|
+#define ST_MAGN_0_FS_AVL_5600_VAL 0x06
|
|
|
+#define ST_MAGN_0_FS_AVL_8100_VAL 0x07
|
|
|
+#define ST_MAGN_0_FS_AVL_1300_GAIN_XY 1100
|
|
|
+#define ST_MAGN_0_FS_AVL_1900_GAIN_XY 855
|
|
|
+#define ST_MAGN_0_FS_AVL_2500_GAIN_XY 670
|
|
|
+#define ST_MAGN_0_FS_AVL_4000_GAIN_XY 450
|
|
|
+#define ST_MAGN_0_FS_AVL_4700_GAIN_XY 400
|
|
|
+#define ST_MAGN_0_FS_AVL_5600_GAIN_XY 330
|
|
|
+#define ST_MAGN_0_FS_AVL_8100_GAIN_XY 230
|
|
|
+#define ST_MAGN_0_FS_AVL_1300_GAIN_Z 980
|
|
|
+#define ST_MAGN_0_FS_AVL_1900_GAIN_Z 760
|
|
|
+#define ST_MAGN_0_FS_AVL_2500_GAIN_Z 600
|
|
|
+#define ST_MAGN_0_FS_AVL_4000_GAIN_Z 400
|
|
|
+#define ST_MAGN_0_FS_AVL_4700_GAIN_Z 355
|
|
|
+#define ST_MAGN_0_FS_AVL_5600_GAIN_Z 295
|
|
|
+#define ST_MAGN_0_FS_AVL_8100_GAIN_Z 205
|
|
|
+#define ST_MAGN_0_MULTIREAD_BIT false
|
|
|
+
|
|
|
/* CUSTOM VALUES FOR SENSOR 1 */
|
|
|
#define ST_MAGN_1_WAI_EXP 0x3c
|
|
|
#define ST_MAGN_1_ODR_ADDR 0x00
|
|
@@ -150,6 +190,82 @@ static const struct iio_chan_spec st_magn_2_16bit_channels[] = {
|
|
|
};
|
|
|
|
|
|
static const struct st_sensor_settings st_magn_sensors_settings[] = {
|
|
|
+ {
|
|
|
+ .wai = 0, /* This sensor has no valid WhoAmI report 0 */
|
|
|
+ .sensors_supported = {
|
|
|
+ [0] = LSM303DLH_MAGN_DEV_NAME,
|
|
|
+ },
|
|
|
+ .ch = (struct iio_chan_spec *)st_magn_16bit_channels,
|
|
|
+ .odr = {
|
|
|
+ .addr = ST_MAGN_0_ODR_ADDR,
|
|
|
+ .mask = ST_MAGN_0_ODR_MASK,
|
|
|
+ .odr_avl = {
|
|
|
+ { 1, ST_MAGN_0_ODR_AVL_1HZ_VAL, },
|
|
|
+ { 2, ST_MAGN_0_ODR_AVL_2HZ_VAL, },
|
|
|
+ { 3, ST_MAGN_0_ODR_AVL_3HZ_VAL, },
|
|
|
+ { 8, ST_MAGN_0_ODR_AVL_8HZ_VAL, },
|
|
|
+ { 15, ST_MAGN_0_ODR_AVL_15HZ_VAL, },
|
|
|
+ { 30, ST_MAGN_0_ODR_AVL_30HZ_VAL, },
|
|
|
+ { 75, ST_MAGN_0_ODR_AVL_75HZ_VAL, },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .pw = {
|
|
|
+ .addr = ST_MAGN_0_PW_ADDR,
|
|
|
+ .mask = ST_MAGN_0_PW_MASK,
|
|
|
+ .value_on = ST_MAGN_0_PW_ON,
|
|
|
+ .value_off = ST_MAGN_0_PW_OFF,
|
|
|
+ },
|
|
|
+ .fs = {
|
|
|
+ .addr = ST_MAGN_0_FS_ADDR,
|
|
|
+ .mask = ST_MAGN_0_FS_MASK,
|
|
|
+ .fs_avl = {
|
|
|
+ [0] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_1300MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_1300_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_1300_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_1300_GAIN_Z,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_1900MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_1900_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_1900_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_1900_GAIN_Z,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_2500MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_2500_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_2500_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_2500_GAIN_Z,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_4000MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_4000_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_4000_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_4000_GAIN_Z,
|
|
|
+ },
|
|
|
+ [4] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_4700MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_4700_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_4700_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_4700_GAIN_Z,
|
|
|
+ },
|
|
|
+ [5] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_5600MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_5600_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_5600_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_5600_GAIN_Z,
|
|
|
+ },
|
|
|
+ [6] = {
|
|
|
+ .num = ST_MAGN_FS_AVL_8100MG,
|
|
|
+ .value = ST_MAGN_0_FS_AVL_8100_VAL,
|
|
|
+ .gain = ST_MAGN_0_FS_AVL_8100_GAIN_XY,
|
|
|
+ .gain2 = ST_MAGN_0_FS_AVL_8100_GAIN_Z,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .multi_read_bit = ST_MAGN_0_MULTIREAD_BIT,
|
|
|
+ .bootime = 2,
|
|
|
+ },
|
|
|
{
|
|
|
.wai = ST_MAGN_1_WAI_EXP,
|
|
|
.sensors_supported = {
|