From: Jonathan Cameron <jic23@jic23.retrosnub.co.uk>
To: Alexandru Ardelean <ardeleanalex@gmail.com>
Cc: Alexandru Ardelean <alexandru.ardelean@analog.com>,
linux-iio@vger.kernel.org,
Michael Hennerich <michael.hennerich@analog.com>
Subject: Re: [PATCH] iio: frequency: ad9523: add eeprom read/write verification
Date: Sun, 19 May 2019 09:34:46 +0100 [thread overview]
Message-ID: <20190519093446.3c3e9f7c@archlinux> (raw)
In-Reply-To: <CA+U=Dsr6YpAjJ9K98f7J_Gg_f_Lb_Hrey1QyqGUj9CihYguVpQ@mail.gmail.com>
On Sat, 18 May 2019 22:39:09 +0300
Alexandru Ardelean <ardeleanalex@gmail.com> wrote:
> On Sat, May 18, 2019 at 1:01 PM Jonathan Cameron
> <jic23@jic23.retrosnub.co.uk> wrote:
> >
> > On Fri, 17 May 2019 17:19:38 +0300
> > Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> >
> > > From: Michael Hennerich <michael.hennerich@analog.com>
> > >
> > > This change adds a basic verification of the EEPROM by writing a known
> > > value to the customer version ID register, and reading it back.
> > >
> > > This validates that the EEPROM & SPI communication are functioning
> > > properly, and the device is ready to use.
> > >
> > > Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
> > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> >
> > I'm going to assume that the write cycle limitations of that eeprom
> > have been taken into account here and it won't be an issue until
> > a very large number of probe and remove cycles. There is also the
> > slightly amusing possibility of breaking a customer part if someone
> > managed to pull the power whilst you have the wrong customer ID
> > in the eeprom. However your device and I assume there is a customer
> > who really wants this sanity check so fair enough...
> >
> > Applied to the togreg branch of iio.git and pushed out as testing for
> > the autobuilders to play with it.
>
> I was also a bit unsure about this patch in this form.
> But now that you've raised these points, I am now somewhat paranoid.
>
> I guess, I'll have to go back and start a internal discussion about
> this. Maybe it makes more sense to add a device[-tree] property to
> configure this somehow, and if someone really wants this behavior,
> he/she can enable it.
> This patch was also created some time ago [before I joined Analog] so
> there is some context I may be lacking here about it.
>
> Maybe let's drop this, and I can come back with a version that would
> not allow users to shoot-them-selves-in-the-foot without a safety
> mechanism off.
>
> Sorry for the noise.
Cool. Dropped for now then.
Jonathan
> Alex
>
> >
> > Thanks,
> >
> > Jonathan
> >
> > > ---
> > > drivers/iio/frequency/ad9523.c | 28 ++++++++++++++++++++++++++++
> > > 1 file changed, 28 insertions(+)
> > >
> > > diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c
> > > index 9b9eee27176c..dd159a1237f3 100644
> > > --- a/drivers/iio/frequency/ad9523.c
> > > +++ b/drivers/iio/frequency/ad9523.c
> > > @@ -749,6 +749,30 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
> > > return ret;
> > > }
> > >
> > > +static int ad9523_verify_eeprom(struct iio_dev *indio_dev)
> > > +{
> > > + int ret, id;
> > > +
> > > + id = ad9523_read(indio_dev, AD9523_EEPROM_CUSTOMER_VERSION_ID);
> > > + if (id < 0)
> > > + return id;
> > > +
> > > + ret = ad9523_write(indio_dev, AD9523_EEPROM_CUSTOMER_VERSION_ID, 0xAD95);
> > > + if (ret < 0)
> > > + return ret;
> > > +
> > > + ret = ad9523_read(indio_dev, AD9523_EEPROM_CUSTOMER_VERSION_ID);
> > > + if (ret < 0)
> > > + return ret;
> > > +
> > > + if (ret != 0xAD95) {
> > > + dev_err(&indio_dev->dev, "SPI Read Verify failed (0x%X)\n", ret);
> > > + return -EIO;
> > > + }
> > > +
> > > + return ad9523_write(indio_dev, AD9523_EEPROM_CUSTOMER_VERSION_ID, id);
> > > +}
> > > +
> > > static const struct iio_info ad9523_info = {
> > > .read_raw = &ad9523_read_raw,
> > > .write_raw = &ad9523_write_raw,
> > > @@ -780,6 +804,10 @@ static int ad9523_setup(struct iio_dev *indio_dev)
> > > if (ret < 0)
> > > return ret;
> > >
> > > + ret = ad9523_verify_eeprom(indio_dev);
> > > + if (ret < 0)
> > > + return ret;
> > > +
> > > /*
> > > * PLL1 Setup
> > > */
> >
prev parent reply other threads:[~2019-05-19 18:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-17 14:19 [PATCH] iio: frequency: ad9523: add eeprom read/write verification Alexandru Ardelean
2019-05-18 10:00 ` Jonathan Cameron
2019-05-18 19:39 ` Alexandru Ardelean
2019-05-19 8:34 ` Jonathan Cameron [this message]
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=20190519093446.3c3e9f7c@archlinux \
--to=jic23@jic23.retrosnub.co.uk \
--cc=alexandru.ardelean@analog.com \
--cc=ardeleanalex@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=michael.hennerich@analog.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).