From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Wolfram Sang <wsa@the-dreams.de>
Cc: linux-i2c@vger.kernel.org, linux-sh@vger.kernel.org,
Magnus Damm <magnus.damm@gmail.com>,
Simon Horman <horms@verge.net.au>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
linux-rockchip@lists.infradead.org,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Jarkko Nikula <jarkko.nikula@linux.intel.com>
Subject: Re: [PATCH 2/9] i2c: add generic routine to parse DT for timing information
Date: Fri, 4 Dec 2015 10:34:28 +0200 [thread overview]
Message-ID: <20151204083428.GC1593@lahna.fi.intel.com> (raw)
In-Reply-To: <1449157899-6572-3-git-send-email-wsa@the-dreams.de>
On Thu, Dec 03, 2015 at 04:51:32PM +0100, Wolfram Sang wrote:
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
>
> Inspired from the i2c-rk3x driver (thanks guys!) but refactored and
> extended. See built-in docs for further information.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
> drivers/i2c/i2c-core.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
> include/linux/i2c.h | 22 ++++++++++++++++++++++
> 2 files changed, 72 insertions(+)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index ba8eb087f22465..5c269dd51b2de7 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -1438,6 +1438,56 @@ static void of_i2c_register_devices(struct i2c_adapter *adap)
> }
> }
>
> +/**
> + * of_i2c_parse_timings - get I2C related timing parameters from DT
> + * @node: The DT node to scan for I2C timing properties
> + * @t: the i2c_timings struct to be filled with values
> + * @use_defaults: bool to use sane defaults derived from the I2C specification
> + * when properties are not found, otherwise use 0
> + *
> + * Scan the node pointer for the generic I2C DT properties describing timing
> + * parameters for the signal and fill the given struct with the results. If a
> + * property was not found and use_defaults was true, then maximum timings are
> + * assumed which are derived from the I2C specification. If use_defaults is not
> + * used, the result will be 0, so drivers can apply their own defaults later.
> + * The latter is mainly intended for avoiding regressions of existing drivers
> + * which want to switch to this function. New drivers almost always should use
> + * the defaults.
> + */
> +void of_i2c_parse_timings(struct device_node *node, struct i2c_timings *t, bool use_defaults)
> +{
> + memset(t, 0, sizeof(*t));
> +
> + if (of_property_read_u32(node, "clock-frequency", &t->bus_freq_hz) && use_defaults)
> + t->bus_freq_hz = 100000;
Why not create device_i2c_parse_timings() instead and use unified device
properties API?
WARNING: multiple messages have this Message-ID (diff)
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Wolfram Sang <wsa@the-dreams.de>
Cc: linux-i2c@vger.kernel.org, linux-sh@vger.kernel.org,
Magnus Damm <magnus.damm@gmail.com>,
Simon Horman <horms@verge.net.au>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
linux-rockchip@lists.infradead.org,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Jarkko Nikula <jarkko.nikula@linux.intel.com>
Subject: Re: [PATCH 2/9] i2c: add generic routine to parse DT for timing information
Date: Fri, 04 Dec 2015 08:34:28 +0000 [thread overview]
Message-ID: <20151204083428.GC1593@lahna.fi.intel.com> (raw)
In-Reply-To: <1449157899-6572-3-git-send-email-wsa@the-dreams.de>
On Thu, Dec 03, 2015 at 04:51:32PM +0100, Wolfram Sang wrote:
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
>
> Inspired from the i2c-rk3x driver (thanks guys!) but refactored and
> extended. See built-in docs for further information.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
> drivers/i2c/i2c-core.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
> include/linux/i2c.h | 22 ++++++++++++++++++++++
> 2 files changed, 72 insertions(+)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index ba8eb087f22465..5c269dd51b2de7 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -1438,6 +1438,56 @@ static void of_i2c_register_devices(struct i2c_adapter *adap)
> }
> }
>
> +/**
> + * of_i2c_parse_timings - get I2C related timing parameters from DT
> + * @node: The DT node to scan for I2C timing properties
> + * @t: the i2c_timings struct to be filled with values
> + * @use_defaults: bool to use sane defaults derived from the I2C specification
> + * when properties are not found, otherwise use 0
> + *
> + * Scan the node pointer for the generic I2C DT properties describing timing
> + * parameters for the signal and fill the given struct with the results. If a
> + * property was not found and use_defaults was true, then maximum timings are
> + * assumed which are derived from the I2C specification. If use_defaults is not
> + * used, the result will be 0, so drivers can apply their own defaults later.
> + * The latter is mainly intended for avoiding regressions of existing drivers
> + * which want to switch to this function. New drivers almost always should use
> + * the defaults.
> + */
> +void of_i2c_parse_timings(struct device_node *node, struct i2c_timings *t, bool use_defaults)
> +{
> + memset(t, 0, sizeof(*t));
> +
> + if (of_property_read_u32(node, "clock-frequency", &t->bus_freq_hz) && use_defaults)
> + t->bus_freq_hz = 100000;
Why not create device_i2c_parse_timings() instead and use unified device
properties API?
next prev parent reply other threads:[~2015-12-04 8:34 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-03 15:51 [PATCH 0/9] i2c: add generic support for timing parameters in DT Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
[not found] ` <1449157899-6572-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2015-12-03 15:51 ` [PATCH 1/9] i2c: document generic DT bindings for timing parameters Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 20:39 ` Rob Herring
2015-12-03 20:39 ` Rob Herring
2015-12-03 15:51 ` [PATCH 2/9] i2c: add generic routine to parse DT for timing information Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-04 8:34 ` Mika Westerberg [this message]
2015-12-04 8:34 ` Mika Westerberg
2015-12-04 8:41 ` Wolfram Sang
2015-12-04 8:41 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 3/9] i2c: rcar: refactor probe function a little Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 4/9] i2c: rcar: switch to i2c generic dt parsing Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 5/9] i2c: rcar: honor additional i2c timings from DT Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 6/9] ARM: shmobile: r8a7790: dtsi: add internal delay for i2c IPs Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 7/9] ARM: shmobile: r8a7791: " Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 8/9] ARM: shmobile: r8a7794: " Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-03 15:51 ` [PATCH 9/9] arm64: renesas: r8a7795: " Wolfram Sang
2015-12-03 15:51 ` Wolfram Sang
2015-12-07 6:39 ` [PATCH 0/9] i2c: add generic support for timing parameters in DT Simon Horman
2015-12-07 6:39 ` Simon Horman
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=20151204083428.GC1593@lahna.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=geert@linux-m68k.org \
--cc=horms@verge.net.au \
--cc=jarkko.nikula@linux.intel.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-sh@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=wsa@the-dreams.de \
--cc=yoshihiro.shimoda.uh@renesas.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 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.