From: Rob Herring <robh@kernel.org> To: Jisheng Zhang <jszhang@marvell.com> Cc: wsa@the-dreams.de, pawel.moll@arm.com, mark.rutland@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, jarkko.nikula@linux.intel.com, andriy.shevchenko@linux.intel.com, mika.westerberg@linux.intel.com, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] i2c: designware-platdrv: implement bus recovery Date: Thu, 14 Apr 2016 12:34:45 -0500 [thread overview] Message-ID: <20160414173445.GA21450@rob-hp-laptop> (raw) In-Reply-To: <1460642696-1858-1-git-send-email-jszhang@marvell.com> On Thu, Apr 14, 2016 at 10:04:56PM +0800, Jisheng Zhang wrote: > Implement bus recovery methods for i2c designware so we can recover > from situations where SCL/SDA are stuck low. > > The recovery method is similar as i2c-imx: "config the i2c pinctrl to > gpio mode by calling pinctrl sleep set function, and then use GPIO to > emulate the i2c protocol to send nine dummy clock to recover i2c > device. After recovery, set i2c pinctrl to default group setting. > > Signed-off-by: Jisheng Zhang <jszhang@marvell.com> > --- > depends on runtime pm patches > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-April/422202.html > .../devicetree/bindings/i2c/i2c-designware.txt | 12 ++++++ > drivers/i2c/busses/i2c-designware-core.c | 6 ++- > drivers/i2c/busses/i2c-designware-core.h | 4 ++ > drivers/i2c/busses/i2c-designware-platdrv.c | 50 ++++++++++++++++++++++ > 4 files changed, 71 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt > index fee26dc..51a55c6 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt > +++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt > @@ -20,6 +20,13 @@ Optional properties : > - i2c-sda-falling-time-ns : should contain the SDA falling time in nanoseconds. > This value which is by default 300ns is used to compute the tHIGH period. > > + - scl-gpios: specify the gpio related to SCL pin > + > + - sda-gpios: specify the gpio related to SDA pin > + > + - pinctrl: add extra pinctrl to configure i2c pins to gpio function for i2c > + bus recovery, call it "gpio" state > + Make these common properties in i2c.txt (and a separate patch). > Example : > > i2c@f0000 { > @@ -42,4 +49,9 @@ Example : > i2c-sda-hold-time-ns = <300>; > i2c-sda-falling-time-ns = <300>; > i2c-scl-falling-time-ns = <300>; > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_i2c1_default>; > + pinctrl-1 = <&pinctrl_i2c1_gpio>; > + scl-gpios = <&porta 26 GPIO_ACTIVE_HIGH>; > + sda-gpios = <&porta 27 GPIO_ACTIVE_HIGH>; > };
WARNING: multiple messages have this Message-ID (diff)
From: robh@kernel.org (Rob Herring) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] i2c: designware-platdrv: implement bus recovery Date: Thu, 14 Apr 2016 12:34:45 -0500 [thread overview] Message-ID: <20160414173445.GA21450@rob-hp-laptop> (raw) In-Reply-To: <1460642696-1858-1-git-send-email-jszhang@marvell.com> On Thu, Apr 14, 2016 at 10:04:56PM +0800, Jisheng Zhang wrote: > Implement bus recovery methods for i2c designware so we can recover > from situations where SCL/SDA are stuck low. > > The recovery method is similar as i2c-imx: "config the i2c pinctrl to > gpio mode by calling pinctrl sleep set function, and then use GPIO to > emulate the i2c protocol to send nine dummy clock to recover i2c > device. After recovery, set i2c pinctrl to default group setting. > > Signed-off-by: Jisheng Zhang <jszhang@marvell.com> > --- > depends on runtime pm patches > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-April/422202.html > .../devicetree/bindings/i2c/i2c-designware.txt | 12 ++++++ > drivers/i2c/busses/i2c-designware-core.c | 6 ++- > drivers/i2c/busses/i2c-designware-core.h | 4 ++ > drivers/i2c/busses/i2c-designware-platdrv.c | 50 ++++++++++++++++++++++ > 4 files changed, 71 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt > index fee26dc..51a55c6 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt > +++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt > @@ -20,6 +20,13 @@ Optional properties : > - i2c-sda-falling-time-ns : should contain the SDA falling time in nanoseconds. > This value which is by default 300ns is used to compute the tHIGH period. > > + - scl-gpios: specify the gpio related to SCL pin > + > + - sda-gpios: specify the gpio related to SDA pin > + > + - pinctrl: add extra pinctrl to configure i2c pins to gpio function for i2c > + bus recovery, call it "gpio" state > + Make these common properties in i2c.txt (and a separate patch). > Example : > > i2c at f0000 { > @@ -42,4 +49,9 @@ Example : > i2c-sda-hold-time-ns = <300>; > i2c-sda-falling-time-ns = <300>; > i2c-scl-falling-time-ns = <300>; > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_i2c1_default>; > + pinctrl-1 = <&pinctrl_i2c1_gpio>; > + scl-gpios = <&porta 26 GPIO_ACTIVE_HIGH>; > + sda-gpios = <&porta 27 GPIO_ACTIVE_HIGH>; > };
next prev parent reply other threads:[~2016-04-14 17:34 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-14 14:04 [PATCH] i2c: designware-platdrv: implement bus recovery Jisheng Zhang 2016-04-14 14:04 ` Jisheng Zhang 2016-04-14 14:04 ` Jisheng Zhang 2016-04-14 14:29 ` kbuild test robot 2016-04-14 14:29 ` kbuild test robot 2016-04-14 14:29 ` kbuild test robot 2016-04-14 14:39 ` Mika Westerberg 2016-04-14 14:39 ` Mika Westerberg 2016-04-14 14:58 ` Martinez Kristofer 2016-04-14 14:58 ` Martinez Kristofer 2016-04-15 6:08 ` Jisheng Zhang 2016-04-15 6:08 ` Jisheng Zhang 2016-04-15 6:08 ` Jisheng Zhang 2016-04-15 7:07 ` Mika Westerberg 2016-04-15 7:07 ` Mika Westerberg 2016-04-15 7:30 ` Jisheng Zhang 2016-04-15 7:30 ` Jisheng Zhang 2016-04-15 7:30 ` Jisheng Zhang 2016-04-14 17:34 ` Rob Herring [this message] 2016-04-14 17:34 ` Rob Herring
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=20160414173445.GA21450@rob-hp-laptop \ --to=robh@kernel.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=devicetree@vger.kernel.org \ --cc=galak@codeaurora.org \ --cc=ijc+devicetree@hellion.org.uk \ --cc=jarkko.nikula@linux.intel.com \ --cc=jszhang@marvell.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-i2c@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mika.westerberg@linux.intel.com \ --cc=pawel.moll@arm.com \ --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: linkBe 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.