From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Phil Reid <preid@electromag.com.au>,
jarkko.nikula@linux.intel.com, mika.westerberg@linux.intel.com,
wsa@the-dreams.de, tim@krieglstein.org,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH v3 4/4] i2c: designware: add i2c gpio recovery option
Date: Thu, 28 Sep 2017 13:58:41 +0300 [thread overview]
Message-ID: <1506596321.16112.156.camel@linux.intel.com> (raw)
In-Reply-To: <1504073857-122449-5-git-send-email-preid@electromag.com.au>
On Wed, 2017-08-30 at 14:17 +0800, Phil Reid wrote:
> From: Tim Sander <tim@krieglstein.org>
>
> This patch contains much input from Phil Reid and has been tested
> on Intel/Altera Cyclone V SOC Hardware with Altera GPIO's for the
> SCL and SDA GPIO's. I am still a little unsure about the recover
> in the timeout case (i2c-designware-core.c:770) as i could not
> test this codepath.
> - if (abort_source & DW_IC_TX_ARB_LOST)
> + if (abort_source & DW_IC_TX_ARB_LOST) {
> + i2c_recover_bus(&dev->adapter);
> return -EAGAIN;
> - else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
> + } else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
else is redundant.
> return -EINVAL; /* wrong msgs[] data */
> else
Ditto.
> return -EIO;
> +static int i2c_dw_init_recovery_info(struct dw_i2c_dev *dev)
> +{
> + struct i2c_bus_recovery_info *rinfo = &dev->rinfo;
> + struct i2c_adapter *adap = &dev->adapter;
> + struct gpio_desc *gpio;
> + int r;
> +
> + gpio = devm_gpiod_get(dev->dev, "scl", GPIOD_OUT_HIGH);
> + if (IS_ERR(gpio)) {
> + r = PTR_ERR(gpio);
> + if ((r == -ENOENT) || (r == -ENOENT))
Copy'n'paste typo?
> + return 0;
> + return r;
> + }
> + rinfo->scl_gpiod = gpio;
> +
> + gpio = devm_gpiod_get_optional(dev->dev, "sda", GPIOD_IN);
> + if (IS_ERR(gpio))
> + return PTR_ERR(gpio);
> + rinfo->sda_gpiod = gpio;
> +
> + rinfo->recover_bus = i2c_generic_scl_recovery;
> + rinfo->prepare_recovery = i2c_dw_prepare_recovery;
> + rinfo->unprepare_recovery = i2c_dw_unprepare_recovery;
> + adap->bus_recovery_info = rinfo;
> +
> + dev_info(dev->dev,
> + "adapter: %s running with gpio recovery mode! scl:%i
> sda:%i\n",
> + adap->name, !!rinfo->scl_gpiod, !!rinfo->sda_gpiod);
Instead of doing numbers, better just to list available descriptors,
e.g.
...("... %s scl\n", rinfo->sda_gpiod ? "sda,");
No need to explain that scl doesn't need any check here.
And I'm not sure why do you need adap->name here. Can you show an
example of output from your test platform?
> + if (!ret)
> + ret = i2c_dw_init_recovery_info(dev);
Better to
if (ret)
return ret;
return i2c...();
> +
> return ret;
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
next prev parent reply other threads:[~2017-09-28 11:07 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-30 6:17 [PATCH v3 0/4] i2c: designware: add i2c gpio recovery option Phil Reid
2017-08-30 6:17 ` [PATCH v3 1/4] i2c: Switch to using gpiod interface for gpio bus recovery Phil Reid
2017-09-28 10:44 ` Andy Shevchenko
2017-09-28 10:54 ` Jarkko Nikula
2017-09-28 10:58 ` Andy Shevchenko
2017-09-29 6:59 ` Phil Reid
2017-09-29 11:48 ` Andy Shevchenko
2017-08-30 6:17 ` [PATCH v3 2/4] i2c: designware: move i2c_dw_plat_prepare_clk to common Phil Reid
2017-09-28 13:01 ` Jarkko Nikula
2017-08-30 6:17 ` [PATCH v3 3/4] i2c: designware: rename i2c_dw_plat_prepare_clk to i2c_dw_prepare_clk Phil Reid
2017-09-28 13:01 ` Jarkko Nikula
2017-08-30 6:17 ` [PATCH v3 4/4] i2c: designware: add i2c gpio recovery option Phil Reid
2017-09-28 10:58 ` Andy Shevchenko [this message]
2017-09-29 7:00 ` Phil Reid
2017-09-28 13:21 ` Jarkko Nikula
2017-10-06 5:56 ` Phil Reid
2017-09-28 7:37 ` [PATCH v3 0/4] " Phil Reid
2017-09-28 9:55 ` Jarkko Nikula
2017-09-28 10:55 ` Andy Shevchenko
2017-10-04 9:41 ` Ferry Toth
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=1506596321.16112.156.camel@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=linux-i2c@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=preid@electromag.com.au \
--cc=tim@krieglstein.org \
--cc=wsa@the-dreams.de \
/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.