Re: [PATCH v2 2/2] iio: chemical: atlas-sensor: add RTD-SM module support

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

 



On Sun, Apr 19, 2020 at 2:18 AM Peter Meerwald-Stadler
<pmeerw@xxxxxxxxxx> wrote:
>
> On Sun, 19 Apr 2020, Matt Ranostay wrote:
>
> > Atlas Scientific RTD-SM OEM sensor reads temperate using
>
> reads temperature?
Typo, will fix.

>
> > resistance temperature detector technology.
> >
> > Signed-off-by: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx>
> > ---
> >  drivers/iio/chemical/atlas-sensor.c | 28 ++++++++++++++++++++++++++++
> >  1 file changed, 28 insertions(+)
> >
> > diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c
> > index 82d470561ad3..c7ed9004cf82 100644
> > --- a/drivers/iio/chemical/atlas-sensor.c
> > +++ b/drivers/iio/chemical/atlas-sensor.c
> > @@ -68,16 +68,20 @@
> >  #define ATLAS_REG_DO_TEMP_DATA               0x12
> >  #define ATLAS_REG_DO_DATA            0x22
> >
> > +#define ATLAS_REG_RTD_DATA           0x0e
>
> maybe keep registers in ascending order
>
> > +
> >  #define ATLAS_PH_INT_TIME_IN_MS              450
> >  #define ATLAS_EC_INT_TIME_IN_MS              650
> >  #define ATLAS_ORP_INT_TIME_IN_MS     450
> >  #define ATLAS_DO_INT_TIME_IN_MS              450
> > +#define ATLAS_RTD_INT_TIME_IN_MS     450
> >
> >  enum {
> >       ATLAS_PH_SM,
> >       ATLAS_EC_SM,
> >       ATLAS_ORP_SM,
> >       ATLAS_DO_SM,
> > +     ATLAS_RTD_SM,
> >  };
> >
> >  struct atlas_data {
> > @@ -206,6 +210,22 @@ static const struct iio_chan_spec atlas_do_channels[] = {
> >       },
> >  };
> >
> > +static const struct iio_chan_spec atlas_rtd_channels[] = {
> > +     {
> > +             .type = IIO_TEMP,
> > +             .address = ATLAS_REG_RTD_DATA,
> > +             .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> > +             .scan_index = 0,
> > +             .scan_type = {
> > +                     .sign = 'u',
>
> so this thing can't read negative temperature?

Hmm good question. I'll ask Atlas since the datasheet says to -126 C
but doesn't note if it
is in two's complement or not

>
> > +                     .realbits = 32,
> > +                     .storagebits = 32,
> > +                     .endianness = IIO_BE,
>
> _PROCESSED, but still stored as big endian? hm

Ah should be _PROCESSED, but still need a entry in atlas_read_raw i
just noted to
read the value and be16_to_cpu

- Matt

>
> > +             },
> > +     },
> > +     IIO_CHAN_SOFT_TIMESTAMP(1),
> > +};
> > +
> >  static int atlas_check_ph_calibration(struct atlas_data *data)
> >  {
> >       struct device *dev = &data->client->dev;
> > @@ -350,6 +370,12 @@ static struct atlas_device atlas_devices[] = {
> >                               .calibration = &atlas_check_do_calibration,
> >                               .delay = ATLAS_DO_INT_TIME_IN_MS,
> >       },
> > +     [ATLAS_RTD_SM] = {
> > +                             .channels = atlas_rtd_channels,
> > +                             .num_channels = 2,
> > +                             .data_reg = ATLAS_REG_RTD_DATA,
> > +                             .delay = ATLAS_RTD_INT_TIME_IN_MS,
> > +     },
> >  };
> >
> >  static int atlas_set_powermode(struct atlas_data *data, int on)
> > @@ -566,6 +592,7 @@ static const struct i2c_device_id atlas_id[] = {
> >       { "atlas-ec-sm", ATLAS_EC_SM},
> >       { "atlas-orp-sm", ATLAS_ORP_SM},
> >       { "atlas-do-sm", ATLAS_DO_SM},
> > +     { "atlas-rtd-sm", ATLAS_RTD_SM},
> >       {}
> >  };
> >  MODULE_DEVICE_TABLE(i2c, atlas_id);
> > @@ -575,6 +602,7 @@ static const struct of_device_id atlas_dt_ids[] = {
> >       { .compatible = "atlas,ec-sm", .data = (void *)ATLAS_EC_SM, },
> >       { .compatible = "atlas,orp-sm", .data = (void *)ATLAS_ORP_SM, },
> >       { .compatible = "atlas,do-sm", .data = (void *)ATLAS_DO_SM, },
> > +     { .compatible = "atlas,rtd-sm", .data = (void *)ATLAS_RTD_SM, },
> >       { }
> >  };
> >  MODULE_DEVICE_TABLE(of, atlas_dt_ids);
> >
>
> --
>
> Peter Meerwald-Stadler
> Mobile: +43 664 24 44 418



[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