From: Slawomir Stepien <sst@poczta.fm>
To: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: jic23@kernel.org, knaack.h@gmx.de, lars@metafoo.de,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] iio: potentiometer: add driver for Maxim Integrated DS1803
Date: Fri, 8 Apr 2016 17:28:17 +0200 [thread overview]
Message-ID: <20160408152817.GA2847@x220> (raw)
In-Reply-To: <alpine.DEB.2.02.1604072130040.26969@pmeerw.net>
On Apr 07, 2016 21:36, Peter Meerwald-Stadler wrote:
>
> > The following functions are supported:
> > - write, read potentiometer value
> > - potentiometer scale
>
> minor comments below, nice driver
Thank you for your comments!
> > +#include <linux/cache.h>
>
> for what is cache.h needed?
It is not needed here. I will delete it in v2.
> > +static int ds1803_read_raw(struct iio_dev *indio_dev,
> > + struct iio_chan_spec const *chan,
> > + int *val, int *val2, long mask)
> > +{
> > + struct ds1803_data *data = iio_priv(indio_dev);
> > + int pot = chan->channel;
> > + s32 ret;
> > +
> > + switch (mask) {
> > + case IIO_CHAN_INFO_RAW:
> > + ret = i2c_smbus_read_word_swapped(data->client, 0);
>
> maybe a #define to explain the name of register 0
Well this zero is not register nor any kind of command that DS1803 needs to send
back pots values.
DS1803 only requires the standard R/W bit to be set as read.
I used _word_ function series to get back a word (16 bits) as this poti returns
16 bits.
How should I named it?
#define NON_COMMAND 0
?
Or should I use different function? (2x i2c_smbus_read_byte?)
The i2c_smbus_read_byte() function also used 0 as command
for its transfers...
> > + if (ret < 0)
> > + return ret;
> > +
> > + /* Get bits for given pot */
> > + *val = (pot == 0 ? ret >> 8 : ret & 255);
>
> often 0xff is used to mask a byte
OK.
> > + return IIO_VAL_INT;
> > +
> > + case IIO_CHAN_INFO_SCALE:
> > + *val = 1000 * data->cfg->kohms;
> > + *val2 = DS1803_MAX_POS;
> > + return IIO_VAL_FRACTIONAL;
> > + }
> > +
> > + return -EINVAL;
> > +}
> > +
> > +static int ds1803_write_raw(struct iio_dev *indio_dev,
> > + struct iio_chan_spec const *chan,
> > + int val, int val2, long mask)
> > +{
> > + struct ds1803_data *data = iio_priv(indio_dev);
> > + int pot = chan->channel;
> > +
> > + switch (mask) {
> > + case IIO_CHAN_INFO_RAW:
> > + if (val > DS1803_MAX_POS || val < 0)
>
> check that val2 is 0 or use .write_raw_get_fmt
At this point I do not know why should I do it, but I will look into that.
> > + indio_dev->dev.parent = dev;
> > + indio_dev->info = &ds1803_info;
> > + indio_dev->channels = ds1803_channels;
> > + indio_dev->num_channels = DS1803_NUM_WIPERS;
>
> ARRAY_SIZE(ds1803_channels)
Good point.
--
Slawomir Stepien
next prev parent reply other threads:[~2016-04-08 15:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-07 16:51 [PATCH] iio: potentiometer: add driver for Maxim Integrated DS1803 Slawomir Stepien
2016-04-07 19:36 ` Peter Meerwald-Stadler
2016-04-08 15:28 ` Slawomir Stepien [this message]
2016-04-08 16:00 ` Peter Meerwald-Stadler
2016-04-08 17:06 ` Slawomir Stepien
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160408152817.GA2847@x220 \
--to=sst@poczta.fm \
--cc=jic23@kernel.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.