lkml.org 
[lkml]   [2022]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 5/5] iio: pressure: bmp280: Add more tunable config parameters for BMP380
On Mon, 12 Sep 2022 02:53:06 +0200
Angel Iglesias <ang.iglesiasg@gmail.com> wrote:

> 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@gmail.com> 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
>
Agreed. Don't use s32_fract for this. It would be misleading.

Jonathan

> > > +       [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?
> >
>

\
 
 \ /
  Last update: 2022-09-15 15:34    [W:0.051 / U:1.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site