Re: [PATCH v5 5/5] iio: pressure: bmp280: Add more tunable config parameters for BMP380

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2022-08-08 at 11:13 +0200, Andy Shevchenko wrote:
> On Sun, Aug 7, 2022 at 2:44 PM Angel Iglesias <ang.iglesiasg@xxxxxxxxx> wrote:
> > 
> > Allows sampling frequency and IIR filter coefficients configuration
> > using sysfs ABI.
> > 
> > The IIR filter coefficient is configurable using the sysfs attribute
> > "filter_low_pass_3db_frequency".
> 
> ...
> 
> > +static const int bmp380_odr_table[][2] = {
> 
> s32_fract ?

I modeled this bit and other ODR representations after the adxl355 driver. I see
that s32_fract would be a bit cleaner than having arrays inside arrays, but I'm
failing to see which additional advantages would provide.
Also, technically, these are precomputed frequencies, the first index is the
integer part and the second is the fractional part. The fractions would be
200/1, 200/2, 200/4 ... 200/131072

> > +       [BMP380_ODR_200HZ]      = {200, 0},
> > +       [BMP380_ODR_100HZ]      = {100, 0},
> > +       [BMP380_ODR_50HZ]       = {50, 0},
> > +       [BMP380_ODR_25HZ]       = {25, 0},
> > +       [BMP380_ODR_12_5HZ]     = {12, 500000},
> > +       [BMP380_ODR_6_25HZ]     = {6, 250000},
> > +       [BMP380_ODR_3_125HZ]    = {3, 125000},
> > +       [BMP380_ODR_1_5625HZ]   = {1, 562500},
> > +       [BMP380_ODR_0_78HZ]     = {0, 781250},
> > +       [BMP380_ODR_0_39HZ]     = {0, 390625},
> > +       [BMP380_ODR_0_2HZ]      = {0, 195313},
> > +       [BMP380_ODR_0_1HZ]      = {0, 97656},
> > +       [BMP380_ODR_0_05HZ]     = {0, 48828},
> > +       [BMP380_ODR_0_02HZ]     = {0, 24414},
> > +       [BMP380_ODR_0_01HZ]     = {0, 12207},
> > +       [BMP380_ODR_0_006HZ]    = {0, 6104},
> > +       [BMP380_ODR_0_003HZ]    = {0, 3052},
> > +       [BMP380_ODR_0_0015HZ]   = {0, 1526},
> > +};
> 
> ...
> 
> > +               ret = regmap_write_bits(data->regmap,
> > BMP380_REG_POWER_CONTROL,
> > +                                       BMP380_MODE_MASK,
> 
> > +                                       FIELD_PREP(BMP380_MODE_MASK,
> > +                                                  BMP380_MODE_SLEEP));
> 
> One line?
> 
> ...
> 
> > +               ret = regmap_write_bits(data->regmap,
> > BMP380_REG_POWER_CONTROL,
> > +                                       BMP380_MODE_MASK,
> 
> > +                                       FIELD_PREP(BMP380_MODE_MASK,
> > +                                                  BMP380_MODE_NORMAL));
> 
> Ditto.
> 
> ...
> 
> > +static const int bmp380_iir_filter_coeffs_avail[] = { 0, 1, 3, 7, 15, 31,
> > 63, 127 };
> 
> This seems like a power of two - 1, can it be replaced by a formula in the
> code?
> 





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux