From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [linux-sunxi] [PATCH 1/5] i2c: mv64xxx: Add reset deassert call
Date: Fri, 10 Jan 2014 18:24:02 +0100 [thread overview]
Message-ID: <20140110172402.GR2941@lukather> (raw)
In-Reply-To: <CAGb2v6663ARKwmJ4Ypzi=m-J7UMvUFRq1=qLbqgQ0vrN_gC18w@mail.gmail.com>
Hi,
On Fri, Jan 10, 2014 at 01:48:41PM +0800, Chen-Yu Tsai wrote:
> On Fri, Jan 10, 2014 at 1:19 AM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > The Allwinner A31 SoC using that IP has a reset controller maintaining
> > it reset unless told otherwise.
> >
> > Add some optional reset support to the driver.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> > ---
> > Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | 1 +
> > drivers/i2c/busses/Kconfig | 1 +
> > drivers/i2c/busses/i2c-mv64xxx.c | 6 ++++++
> > 3 files changed, 8 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> > index 82e8f6f..603003a 100644
> > --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> > +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> > @@ -12,6 +12,7 @@ Optional properties :
> >
> > - clock-frequency : Desired I2C bus clock frequency in Hz. If not set the
> > default frequency is 100kHz
> > + - resets : phandle to the parent reset controller
> >
> > Examples:
> >
> > diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> > index 3b26129..69aa599 100644
> > --- a/drivers/i2c/busses/Kconfig
> > +++ b/drivers/i2c/busses/Kconfig
> > @@ -528,6 +528,7 @@ config I2C_MPC
> > config I2C_MV64XXX
> > tristate "Marvell mv64xxx I2C Controller"
> > depends on (MV64X60 || PLAT_ORION || ARCH_SUNXI)
> > + select RESET_CONTROLLER
> > help
> > If you say yes to this option, support will be included for the
> > built-in I2C interface on the Marvell 64xxx line of host bridges.
> > diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
> > index 8be7e42..d4e2f32 100644
> > --- a/drivers/i2c/busses/i2c-mv64xxx.c
> > +++ b/drivers/i2c/busses/i2c-mv64xxx.c
> > @@ -17,6 +17,7 @@
> > #include <linux/interrupt.h>
> > #include <linux/mv643xx_i2c.h>
> > #include <linux/platform_device.h>
> > +#include <linux/reset.h>
> > #include <linux/io.h>
> > #include <linux/of.h>
> > #include <linux/of_device.h>
> > @@ -743,6 +744,7 @@ mv64xxx_of_config(struct mv64xxx_i2c_data *drv_data,
> > #else
> > const struct of_device_id *device;
> > struct device_node *np = dev->of_node;
> > + struct reset_control *rstc;
> > u32 bus_freq, tclk;
> > int rc = 0;
> >
> > @@ -763,6 +765,10 @@ mv64xxx_of_config(struct mv64xxx_i2c_data *drv_data,
> > }
> > drv_data->irq = irq_of_parse_and_map(np, 0);
> >
> > + rstc = devm_reset_control_get(dev, NULL);
> > + if (!IS_ERR(rstc))
> > + reset_control_deassert(rstc);
> > +
>
> Do we need to handle -EPROBE_DEFER here?
Hmmm, true.
> Also no reset_control_assert() in the exit path?
> I'm asking because I have similar code in my stmmac patches.
That might be a good idea indeed.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140110/db58a7cc/attachment-0001.sig>
next prev parent reply other threads:[~2014-01-10 17:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-09 17:19 [PATCH 0/5] ARM: sun6i: Add support for the A31 I2C controller Maxime Ripard
2014-01-09 17:19 ` [PATCH 1/5] i2c: mv64xxx: Add reset deassert call Maxime Ripard
2014-01-10 5:48 ` [linux-sunxi] " Chen-Yu Tsai
2014-01-10 17:24 ` Maxime Ripard [this message]
2014-01-09 17:20 ` [PATCH 2/5] i2c: mv64xxx: Add support for the Allwinner A31 I2C driver Maxime Ripard
2014-01-09 17:20 ` [PATCH 3/5] ARM: sun6i: Enable the I2C controllers Maxime Ripard
2014-01-09 17:20 ` [PATCH 4/5] ARM: sun6i: Enable the I2C muxing options Maxime Ripard
2014-01-09 17:20 ` [PATCH 5/5] ARM: sun6i: colombus: Enable the I2C controllers Maxime Ripard
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=20140110172402.GR2941@lukather \
--to=maxime.ripard@free-electrons.com \
--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