From: w.sang@pengutronix.de (Wolfram Sang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present
Date: Sun, 10 Feb 2013 13:19:01 +0100 [thread overview]
Message-ID: <20130210121901.GA15546@nekote.pengutronix.de> (raw)
In-Reply-To: <1358189602-24180-2-git-send-email-dianders@chromium.org>
Hi Doug,
On Mon, Jan 14, 2013 at 10:53:21AM -0800, Doug Anderson wrote:
> This allows you to get the equivalent functionality of
> i2c_add_numbered_adapter() with all data in the device tree and no
> special case code in your driver. This is a common device tree
> technique.
>
> For quick reference, the FDT syntax for using an alias to provide an
> ID looks like:
> aliases {
> i2c0 = &i2c_0;
> i2c1 = &i2c_1;
> };
>
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
> ---
> Changes in v2: None
>
> drivers/i2c/i2c-core.c | 105 +++++++++++++++++++++++++++++++++++-------------
> 1 files changed, 77 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index e388590..a60ed6d 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -921,13 +921,81 @@ out_list:
> }
>
> /**
> + * i2c_get_number_from_dt - get the adapter number based on dt alias
> + * @adap: the adapter to look at
> + *
> + * Check whether there's an alias in the FDT that gives an ID for this i2c
> + * device. Use an alias like "i2c<nr>", like:
> + * aliases {
> + * i2c0 = &i2c_0;
> + * i2c1 = &i2c_1;
> + * };
> + *
> + * Returns the ID if found. If no alias is found returns -1.
> + */
> +static int i2c_get_number_from_dt(struct i2c_adapter *adap)
i2c_get_id_from_dt()?
> +{
> + struct device *dev = &adap->dev;
> + int id;
> +
> + if (!dev->of_node)
> + return -1;
-ESOMETHING?
> +
> + id = of_alias_get_id(dev->of_node, "i2c");
> + if (id < 0)
> + return -1;
> + return id;
Simply 'return of_alias_get_id(...)'? Even more, since this function
boils down to calling of_alias_get_id only and is only used once, I'd
think we can implement that directly and drop this function. That
shouldn't hurt readability.
> +}
> +
> +/**
> + * _i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1
> + * @adap: the adapter to register (with adap->nr initialized)
> + * Context: can sleep
> + *
> + * See i2c_add_numbered_adapter() for details.
> + */
> +static int _i2c_add_numbered_adapter(struct i2c_adapter *adap)
All other internal functions are prefixed with '__'.
> +{
> + int id;
> + int status;
> +
> + /* Handled by wrappers */
> + BUG_ON(adap->nr == -1);
Is that a reason to halt the kernel? WARN and bailing out would do IMO.
> +
> + if (adap->nr & ~MAX_IDR_MASK)
> + return -EINVAL;
Note the idr-cleanup series from Tejun Heo. Given that his series is
scheduled for v3.9, I'd like to have your patches on top of his.
Thanks,
Wolfram
next prev parent reply other threads:[~2013-02-10 12:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-20 22:27 [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Doug Anderson
2012-11-20 22:27 ` [PATCH 2/2] i2c: s3c2410: Get the i2c bus number from alias id Doug Anderson
2012-11-21 4:09 ` Mark Brown
2012-11-21 18:33 ` Doug Anderson
2012-11-22 6:56 ` Kukjin Kim
2012-11-21 9:43 ` Kukjin Kim
2012-11-21 18:26 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson
2012-11-21 18:26 ` [PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson
2012-12-05 1:45 ` Haojian Zhuang
2013-01-11 17:57 ` [REPOST PATCH 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson
2013-01-11 17:57 ` [REPOST PATCH 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson
2013-01-14 18:53 ` [PATCH v2 0/2] Add automatic bus number support for i2c busses with device tree Doug Anderson
2013-01-14 18:53 ` [PATCH v2 1/2] i2c-core: dt: Pick i2c bus number from i2c alias if present Doug Anderson
2013-01-15 6:34 ` Olof Johansson
2013-02-10 12:19 ` Wolfram Sang [this message]
2013-02-12 0:48 ` Doug Anderson
2013-01-14 18:53 ` [PATCH v2 2/2] i2c: pxa: Use i2c-core to get bus number now Doug Anderson
2013-01-11 17:57 ` [REPOST PATCH " Doug Anderson
2013-01-11 22:12 ` Sylwester Nawrocki
2013-01-14 18:52 ` Doug Anderson
2012-11-21 18:26 ` [PATCH " Doug Anderson
2012-12-05 1:45 ` Haojian Zhuang
2012-12-05 1:48 ` [PATCH 0/2] Add automatic bus number support for i2c busses with device tree Haojian Zhuang
2012-11-21 7:25 ` [PATCH 1/2] ARM: EXYNOS: Add aliases for i2c controller for exynos4 Olof Johansson
2012-11-21 9:43 ` Kukjin Kim
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=20130210121901.GA15546@nekote.pengutronix.de \
--to=w.sang@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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).