06.02.2020 17:50, Dmitry Osipenko пишет: > 04.02.2020 12:30, David Heidelberg пишет: > ... >> #define AL3320A_CONFIG_DISABLE 0x00 >> #define AL3320A_CONFIG_ENABLE 0x01 >> >> -#define AL3320A_GAIN_SHIFT 1 >> -#define AL3320A_GAIN_MASK (BIT(2) | BIT(1)) >> +#define AL3320A_GAIN_MASK GENMASK(2, 1) > > Looks like you forgot to compile-test this driver because the > AL3320A_GAIN_SHIFT is removed above, while it's still in-use below. > >> /* chip params default values */ >> #define AL3320A_DEFAULT_MEAN_TIME 4 >> @@ -90,7 +89,8 @@ static int al3320a_init(struct al3320a_data *data) >> return ret; >> >> ret = i2c_smbus_write_byte_data(data->client, AL3320A_REG_CONFIG_RANGE, >> - AL3320A_RANGE_3 << AL3320A_GAIN_SHIFT); >> + FIELD_PREP(AL3320A_GAIN_MASK, >> + AL3320A_RANGE_3)); > ... > Ah, my bad! Sorry :)