On 09/11/16 15:09, Linus Walleij wrote: > We have #defines for all the individual sensor registers and > value/mask pairs #defined at the top of the file and used at > exactly one spot. > > This is usually good if the #defines give a meaning to the > opaque magic numbers. > > However in this case, the semantic meaning is inherent in the > name of the C99-addressable fields, and that means duplication > of information, and only makes the code hard to maintain since > you every time have to add a new #define AND update the site > where it is to be used. > > Get rid of the #defines and just open code the values into the > appropriate struct elements. Make sure to explicitly address > the .hz and .value fields in the st_sensor_odr_avl struct > so that the meaning of all values is clear. > > This patch is purely syntactic should have no semantic effect. > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Looks good and applied. Thanks, Jonathan > --- > drivers/iio/magnetometer/st_magn_core.c | 376 +++++++++++--------------------- > 1 file changed, 125 insertions(+), 251 deletions(-) > > diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c > index 3e1f06b2224c..8e1b0861fbe4 100644 > --- a/drivers/iio/magnetometer/st_magn_core.c > +++ b/drivers/iio/magnetometer/st_magn_core.c > @@ -46,139 +46,12 @@ > #define ST_MAGN_FS_AVL_15000MG 15000 > #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 > -#define ST_MAGN_1_ODR_MASK 0x1c > -#define ST_MAGN_1_ODR_AVL_1HZ_VAL 0x00 > -#define ST_MAGN_1_ODR_AVL_2HZ_VAL 0x01 > -#define ST_MAGN_1_ODR_AVL_3HZ_VAL 0x02 > -#define ST_MAGN_1_ODR_AVL_8HZ_VAL 0x03 > -#define ST_MAGN_1_ODR_AVL_15HZ_VAL 0x04 > -#define ST_MAGN_1_ODR_AVL_30HZ_VAL 0x05 > -#define ST_MAGN_1_ODR_AVL_75HZ_VAL 0x06 > -#define ST_MAGN_1_ODR_AVL_220HZ_VAL 0x07 > -#define ST_MAGN_1_PW_ADDR 0x02 > -#define ST_MAGN_1_PW_MASK 0x03 > -#define ST_MAGN_1_PW_ON 0x00 > -#define ST_MAGN_1_PW_OFF 0x03 > -#define ST_MAGN_1_FS_ADDR 0x01 > -#define ST_MAGN_1_FS_MASK 0xe0 > -#define ST_MAGN_1_FS_AVL_1300_VAL 0x01 > -#define ST_MAGN_1_FS_AVL_1900_VAL 0x02 > -#define ST_MAGN_1_FS_AVL_2500_VAL 0x03 > -#define ST_MAGN_1_FS_AVL_4000_VAL 0x04 > -#define ST_MAGN_1_FS_AVL_4700_VAL 0x05 > -#define ST_MAGN_1_FS_AVL_5600_VAL 0x06 > -#define ST_MAGN_1_FS_AVL_8100_VAL 0x07 > -#define ST_MAGN_1_FS_AVL_1300_GAIN_XY 909 > -#define ST_MAGN_1_FS_AVL_1900_GAIN_XY 1169 > -#define ST_MAGN_1_FS_AVL_2500_GAIN_XY 1492 > -#define ST_MAGN_1_FS_AVL_4000_GAIN_XY 2222 > -#define ST_MAGN_1_FS_AVL_4700_GAIN_XY 2500 > -#define ST_MAGN_1_FS_AVL_5600_GAIN_XY 3030 > -#define ST_MAGN_1_FS_AVL_8100_GAIN_XY 4347 > -#define ST_MAGN_1_FS_AVL_1300_GAIN_Z 1020 > -#define ST_MAGN_1_FS_AVL_1900_GAIN_Z 1315 > -#define ST_MAGN_1_FS_AVL_2500_GAIN_Z 1666 > -#define ST_MAGN_1_FS_AVL_4000_GAIN_Z 2500 > -#define ST_MAGN_1_FS_AVL_4700_GAIN_Z 2816 > -#define ST_MAGN_1_FS_AVL_5600_GAIN_Z 3389 > -#define ST_MAGN_1_FS_AVL_8100_GAIN_Z 4878 > -#define ST_MAGN_1_MULTIREAD_BIT false > - > -/* CUSTOM VALUES FOR SENSOR 2 */ > -#define ST_MAGN_2_WAI_EXP 0x3d > -#define ST_MAGN_2_ODR_ADDR 0x20 > -#define ST_MAGN_2_ODR_MASK 0x1c > -#define ST_MAGN_2_ODR_AVL_1HZ_VAL 0x00 > -#define ST_MAGN_2_ODR_AVL_2HZ_VAL 0x01 > -#define ST_MAGN_2_ODR_AVL_3HZ_VAL 0x02 > -#define ST_MAGN_2_ODR_AVL_5HZ_VAL 0x03 > -#define ST_MAGN_2_ODR_AVL_10HZ_VAL 0x04 > -#define ST_MAGN_2_ODR_AVL_20HZ_VAL 0x05 > -#define ST_MAGN_2_ODR_AVL_40HZ_VAL 0x06 > -#define ST_MAGN_2_ODR_AVL_80HZ_VAL 0x07 > -#define ST_MAGN_2_PW_ADDR 0x22 > -#define ST_MAGN_2_PW_MASK 0x03 > -#define ST_MAGN_2_PW_ON 0x00 > -#define ST_MAGN_2_PW_OFF 0x03 > -#define ST_MAGN_2_FS_ADDR 0x21 > -#define ST_MAGN_2_FS_MASK 0x60 > -#define ST_MAGN_2_FS_AVL_4000_VAL 0x00 > -#define ST_MAGN_2_FS_AVL_8000_VAL 0x01 > -#define ST_MAGN_2_FS_AVL_12000_VAL 0x02 > -#define ST_MAGN_2_FS_AVL_16000_VAL 0x03 > -#define ST_MAGN_2_FS_AVL_4000_GAIN 146 > -#define ST_MAGN_2_FS_AVL_8000_GAIN 292 > -#define ST_MAGN_2_FS_AVL_12000_GAIN 438 > -#define ST_MAGN_2_FS_AVL_16000_GAIN 584 > -#define ST_MAGN_2_MULTIREAD_BIT false > +/* Special L addresses for Sensor 2 */ > #define ST_MAGN_2_OUT_X_L_ADDR 0x28 > #define ST_MAGN_2_OUT_Y_L_ADDR 0x2a > #define ST_MAGN_2_OUT_Z_L_ADDR 0x2c > > -/* CUSTOM VALUES FOR SENSOR 3 */ > -#define ST_MAGN_3_WAI_ADDR 0x4f > -#define ST_MAGN_3_WAI_EXP 0x40 > -#define ST_MAGN_3_ODR_ADDR 0x60 > -#define ST_MAGN_3_ODR_MASK 0x0c > -#define ST_MAGN_3_ODR_AVL_10HZ_VAL 0x00 > -#define ST_MAGN_3_ODR_AVL_20HZ_VAL 0x01 > -#define ST_MAGN_3_ODR_AVL_50HZ_VAL 0x02 > -#define ST_MAGN_3_ODR_AVL_100HZ_VAL 0x03 > -#define ST_MAGN_3_PW_ADDR 0x60 > -#define ST_MAGN_3_PW_MASK 0x03 > -#define ST_MAGN_3_PW_ON 0x00 > -#define ST_MAGN_3_PW_OFF 0x03 > -#define ST_MAGN_3_BDU_ADDR 0x62 > -#define ST_MAGN_3_BDU_MASK 0x10 > -#define ST_MAGN_3_DRDY_IRQ_ADDR 0x62 > -#define ST_MAGN_3_DRDY_INT_MASK 0x01 > -#define ST_MAGN_3_IHL_IRQ_ADDR 0x63 > -#define ST_MAGN_3_IHL_IRQ_MASK 0x04 > -#define ST_MAGN_3_FS_AVL_15000_GAIN 1500 > -#define ST_MAGN_3_MULTIREAD_BIT false > +/* Special L addresses for sensor 3 */ > #define ST_MAGN_3_OUT_X_L_ADDR 0x68 > #define ST_MAGN_3_OUT_Y_L_ADDR 0x6a > #define ST_MAGN_3_OUT_Z_L_ADDR 0x6c > @@ -240,77 +113,78 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = { > }, > .ch = (struct iio_chan_spec *)st_magn_16bit_channels, > .odr = { > - .addr = ST_MAGN_0_ODR_ADDR, > - .mask = ST_MAGN_0_ODR_MASK, > + .addr = 0x00, > + .mask = 0x1c, > .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, }, > + { .hz = 1, .value = 0x00 }, > + { .hz = 2, .value = 0x01 }, > + { .hz = 3, .value = 0x02 }, > + { .hz = 8, .value = 0x03 }, > + { .hz = 15, .value = 0x04 }, > + { .hz = 30, .value = 0x05 }, > + { .hz = 75, .value = 0x06 }, > + /* 220 Hz, 0x07 reportedly exist */ > }, > }, > .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, > + .addr = 0x02, > + .mask = 0x03, > + .value_on = 0x00, > + .value_off = 0x03, > }, > .fs = { > - .addr = ST_MAGN_0_FS_ADDR, > - .mask = ST_MAGN_0_FS_MASK, > + .addr = 0x01, > + .mask = 0xe0, > .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, > + .value = 0x01, > + .gain = 1100, > + .gain2 = 980, > }, > [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, > + .value = 0x02, > + .gain = 855, > + .gain2 = 760, > }, > [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, > + .value = 0x03, > + .gain = 670, > + .gain2 = 600, > }, > [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, > + .value = 0x04, > + .gain = 450, > + .gain2 = 400, > }, > [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, > + .value = 0x05, > + .gain = 400, > + .gain2 = 355, > }, > [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, > + .value = 0x06, > + .gain = 330, > + .gain2 = 295, > }, > [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, > + .value = 0x07, > + .gain = 230, > + .gain2 = 205, > }, > }, > }, > - .multi_read_bit = ST_MAGN_0_MULTIREAD_BIT, > + .multi_read_bit = false, > .bootime = 2, > }, > { > - .wai = ST_MAGN_1_WAI_EXP, > + .wai = 0x3c, > .wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, > .sensors_supported = { > [0] = LSM303DLHC_MAGN_DEV_NAME, > @@ -318,175 +192,175 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = { > }, > .ch = (struct iio_chan_spec *)st_magn_16bit_channels, > .odr = { > - .addr = ST_MAGN_1_ODR_ADDR, > - .mask = ST_MAGN_1_ODR_MASK, > + .addr = 0x00, > + .mask = 0x1c, > .odr_avl = { > - { 1, ST_MAGN_1_ODR_AVL_1HZ_VAL, }, > - { 2, ST_MAGN_1_ODR_AVL_2HZ_VAL, }, > - { 3, ST_MAGN_1_ODR_AVL_3HZ_VAL, }, > - { 8, ST_MAGN_1_ODR_AVL_8HZ_VAL, }, > - { 15, ST_MAGN_1_ODR_AVL_15HZ_VAL, }, > - { 30, ST_MAGN_1_ODR_AVL_30HZ_VAL, }, > - { 75, ST_MAGN_1_ODR_AVL_75HZ_VAL, }, > - { 220, ST_MAGN_1_ODR_AVL_220HZ_VAL, }, > + { .hz = 1, .value = 0x00 }, > + { .hz = 2, .value = 0x01 }, > + { .hz = 3, .value = 0x02 }, > + { .hz = 8, .value = 0x03 }, > + { .hz = 15, .value = 0x04 }, > + { .hz = 30, .value = 0x05 }, > + { .hz = 75, .value = 0x06 }, > + { .hz = 220, .value = 0x07 }, > }, > }, > .pw = { > - .addr = ST_MAGN_1_PW_ADDR, > - .mask = ST_MAGN_1_PW_MASK, > - .value_on = ST_MAGN_1_PW_ON, > - .value_off = ST_MAGN_1_PW_OFF, > + .addr = 0x02, > + .mask = 0x03, > + .value_on = 0x00, > + .value_off = 0x03, > }, > .fs = { > - .addr = ST_MAGN_1_FS_ADDR, > - .mask = ST_MAGN_1_FS_MASK, > + .addr = 0x01, > + .mask = 0xe0, > .fs_avl = { > [0] = { > .num = ST_MAGN_FS_AVL_1300MG, > - .value = ST_MAGN_1_FS_AVL_1300_VAL, > - .gain = ST_MAGN_1_FS_AVL_1300_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_1300_GAIN_Z, > + .value = 0x01, > + .gain = 909, > + .gain2 = 1020, > }, > [1] = { > .num = ST_MAGN_FS_AVL_1900MG, > - .value = ST_MAGN_1_FS_AVL_1900_VAL, > - .gain = ST_MAGN_1_FS_AVL_1900_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_1900_GAIN_Z, > + .value = 0x02, > + .gain = 1169, > + .gain2 = 1315, > }, > [2] = { > .num = ST_MAGN_FS_AVL_2500MG, > - .value = ST_MAGN_1_FS_AVL_2500_VAL, > - .gain = ST_MAGN_1_FS_AVL_2500_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_2500_GAIN_Z, > + .value = 0x03, > + .gain = 1492, > + .gain2 = 1666, > }, > [3] = { > .num = ST_MAGN_FS_AVL_4000MG, > - .value = ST_MAGN_1_FS_AVL_4000_VAL, > - .gain = ST_MAGN_1_FS_AVL_4000_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_4000_GAIN_Z, > + .value = 0x04, > + .gain = 2222, > + .gain2 = 2500, > }, > [4] = { > .num = ST_MAGN_FS_AVL_4700MG, > - .value = ST_MAGN_1_FS_AVL_4700_VAL, > - .gain = ST_MAGN_1_FS_AVL_4700_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_4700_GAIN_Z, > + .value = 0x05, > + .gain = 2500, > + .gain2 = 2816, > }, > [5] = { > .num = ST_MAGN_FS_AVL_5600MG, > - .value = ST_MAGN_1_FS_AVL_5600_VAL, > - .gain = ST_MAGN_1_FS_AVL_5600_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_5600_GAIN_Z, > + .value = 0x06, > + .gain = 3030, > + .gain2 = 3389, > }, > [6] = { > .num = ST_MAGN_FS_AVL_8100MG, > - .value = ST_MAGN_1_FS_AVL_8100_VAL, > - .gain = ST_MAGN_1_FS_AVL_8100_GAIN_XY, > - .gain2 = ST_MAGN_1_FS_AVL_8100_GAIN_Z, > + .value = 0x07, > + .gain = 4347, > + .gain2 = 4878, > }, > }, > }, > - .multi_read_bit = ST_MAGN_1_MULTIREAD_BIT, > + .multi_read_bit = false, > .bootime = 2, > }, > { > - .wai = ST_MAGN_2_WAI_EXP, > + .wai = 0x3d, > .wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, > .sensors_supported = { > [0] = LIS3MDL_MAGN_DEV_NAME, > }, > .ch = (struct iio_chan_spec *)st_magn_2_16bit_channels, > .odr = { > - .addr = ST_MAGN_2_ODR_ADDR, > - .mask = ST_MAGN_2_ODR_MASK, > + .addr = 0x20, > + .mask = 0x1c, > .odr_avl = { > - { 1, ST_MAGN_2_ODR_AVL_1HZ_VAL, }, > - { 2, ST_MAGN_2_ODR_AVL_2HZ_VAL, }, > - { 3, ST_MAGN_2_ODR_AVL_3HZ_VAL, }, > - { 5, ST_MAGN_2_ODR_AVL_5HZ_VAL, }, > - { 10, ST_MAGN_2_ODR_AVL_10HZ_VAL, }, > - { 20, ST_MAGN_2_ODR_AVL_20HZ_VAL, }, > - { 40, ST_MAGN_2_ODR_AVL_40HZ_VAL, }, > - { 80, ST_MAGN_2_ODR_AVL_80HZ_VAL, }, > + { .hz = 1, .value = 0x00 }, > + { .hz = 2, .value = 0x01 }, > + { .hz = 3, .value = 0x02 }, > + { .hz = 5, .value = 0x03 }, > + { .hz = 10, .value = 0x04 }, > + { .hz = 20, .value = 0x05 }, > + { .hz = 40, .value = 0x06 }, > + { .hz = 80, .value = 0x07 }, > }, > }, > .pw = { > - .addr = ST_MAGN_2_PW_ADDR, > - .mask = ST_MAGN_2_PW_MASK, > - .value_on = ST_MAGN_2_PW_ON, > - .value_off = ST_MAGN_2_PW_OFF, > + .addr = 0x22, > + .mask = 0x03, > + .value_on = 0x00, > + .value_off = 0x03, > }, > .fs = { > - .addr = ST_MAGN_2_FS_ADDR, > - .mask = ST_MAGN_2_FS_MASK, > + .addr = 0x21, > + .mask = 0x60, > .fs_avl = { > [0] = { > .num = ST_MAGN_FS_AVL_4000MG, > - .value = ST_MAGN_2_FS_AVL_4000_VAL, > - .gain = ST_MAGN_2_FS_AVL_4000_GAIN, > + .value = 0x00, > + .gain = 146, > }, > [1] = { > .num = ST_MAGN_FS_AVL_8000MG, > - .value = ST_MAGN_2_FS_AVL_8000_VAL, > - .gain = ST_MAGN_2_FS_AVL_8000_GAIN, > + .value = 0x01, > + .gain = 292, > }, > [2] = { > .num = ST_MAGN_FS_AVL_12000MG, > - .value = ST_MAGN_2_FS_AVL_12000_VAL, > - .gain = ST_MAGN_2_FS_AVL_12000_GAIN, > + .value = 0x02, > + .gain = 438, > }, > [3] = { > .num = ST_MAGN_FS_AVL_16000MG, > - .value = ST_MAGN_2_FS_AVL_16000_VAL, > - .gain = ST_MAGN_2_FS_AVL_16000_GAIN, > + .value = 0x03, > + .gain = 584, > }, > }, > }, > - .multi_read_bit = ST_MAGN_2_MULTIREAD_BIT, > + .multi_read_bit = false, > .bootime = 2, > }, > { > - .wai = ST_MAGN_3_WAI_EXP, > - .wai_addr = ST_MAGN_3_WAI_ADDR, > + .wai = 0x40, > + .wai_addr = 0x4f, > .sensors_supported = { > [0] = LSM303AGR_MAGN_DEV_NAME, > }, > .ch = (struct iio_chan_spec *)st_magn_3_16bit_channels, > .odr = { > - .addr = ST_MAGN_3_ODR_ADDR, > - .mask = ST_MAGN_3_ODR_MASK, > + .addr = 0x60, > + .mask = 0x0c, > .odr_avl = { > - { 10, ST_MAGN_3_ODR_AVL_10HZ_VAL, }, > - { 20, ST_MAGN_3_ODR_AVL_20HZ_VAL, }, > - { 50, ST_MAGN_3_ODR_AVL_50HZ_VAL, }, > - { 100, ST_MAGN_3_ODR_AVL_100HZ_VAL, }, > + { .hz = 10, .value = 0x00 }, > + { .hz = 20, .value = 0x01 }, > + { .hz = 50, .value = 0x02 }, > + { .hz = 100, .value = 0x03 }, > }, > }, > .pw = { > - .addr = ST_MAGN_3_PW_ADDR, > - .mask = ST_MAGN_3_PW_MASK, > - .value_on = ST_MAGN_3_PW_ON, > - .value_off = ST_MAGN_3_PW_OFF, > + .addr = 0x60, > + .mask = 0x03, > + .value_on = 0x00, > + .value_off = 0x03, > }, > .fs = { > .fs_avl = { > [0] = { > .num = ST_MAGN_FS_AVL_15000MG, > - .gain = ST_MAGN_3_FS_AVL_15000_GAIN, > + .gain = 1500, > }, > }, > }, > .bdu = { > - .addr = ST_MAGN_3_BDU_ADDR, > - .mask = ST_MAGN_3_BDU_MASK, > + .addr = 0x62, > + .mask = 0x10, > }, > .drdy_irq = { > - .addr = ST_MAGN_3_DRDY_IRQ_ADDR, > - .mask_int1 = ST_MAGN_3_DRDY_INT_MASK, > - .addr_ihl = ST_MAGN_3_IHL_IRQ_ADDR, > - .mask_ihl = ST_MAGN_3_IHL_IRQ_MASK, > + .addr = 0x62, > + .mask_int1 = 0x01, > + .addr_ihl = 0x63, > + .mask_ihl = 0x04, > .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, > }, > - .multi_read_bit = ST_MAGN_3_MULTIREAD_BIT, > + .multi_read_bit = false, > .bootime = 2, > }, > }; > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html