All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
To: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
Cc: linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Daniel Kurtz <djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Kukjin Kim <kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Ben Dooks <ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>,
	u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	Grant Grundler <grundler-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>,
	"Ben Dooks (embedded platforms)"
	<ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>,
	Girish Shivananjappa
	<girish.shivananjappa-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"bhushan.r" <bhushan.r-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Naveen Krishna Chatradhi
	<ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	"sreekumar.c"
	<sreekumar.c-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Mark Brown
	<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Peter Korsgaard
	<peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>,
	Yuvaraj Kumar
	<yuvaraj.cd-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Prashanth G <prashanth.g@sam>
Subject: Re: [PATCH v4 1/3] i2c: mux: Add i2c-arbitrator-cros-ec 'mux' driver
Date: Fri, 29 Mar 2013 11:28:39 -0700	[thread overview]
Message-ID: <CAD=FV=XyBZXD1dsOy4kY3CjkFiJXCO+taAJ-zZ8op6V-z9J8jQ@mail.gmail.com> (raw)
In-Reply-To: <20130329115821.GC6359-z923LK4zBo2bacvFa/9K2g@public.gmane.org>

Wolfram,

On Fri, Mar 29, 2013 at 4:58 AM, Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> wrote:
> I can't recall the reason standard I2C bus arbitration is not working
> and why this is needed. I need the feeling this is a solution and not a
> workaround. I mean driver bugs can be fixed and I am unsure if it is a
> good idea to open the i2c-arbitration-*.c namespace.

Thanks for the feedback!

Separately from a discussion of the technical merits, I'd say that
this patch is needed because the Embedded Controller (EC) on the ARM
Chromebook shipped expecting to communicate with this scheme.  While
it is technically possible to update the read-write copy of the
software on the EC, it would be prohibitively difficult to ship an
update that changed the communication method.  Specifically we'd still
require fallback to the old scheme in cases where we need to talk to
the read-only copy of the software on the EC.

...but we can also talk technical merits.  One person on our team
spent a bit of time thinking about this and decided that traditional
i2c arbitration can't actually be used in this case (aside from the
general experience about multimaster being buggy).  Specifically, our
bus is setup with these devices on it:

* AP (running Linux) - Master only.  Only talks when awake.
* EC (running custom code) - Acts as a master and _also_ a slave.
* Battery (smart battery) - Only a slave
* Power Management Unit (PMU - tps65090) - Only a slave

Both the AP and the EC would like to talk to the battery and PMU.  The
AP needs to be able to talk to the EC.

The problem here is that the EC is both a master and a slave.  It's my
understanding that if the AP tries to talk EC on the bus at the same
time that the EC is trying to talk to the battery of PMU that we can
get into trouble.  Specifically the EC needs to be switched to "master
mode" to talk to the battery/PMU and thus has a period of time where
it won't be listening for the AP's messages.  The arbitration lines
make it very clear that the EC has gained mastery of the bus and is
free to switch into "master mode" without worrying that the AP may
talk to it.

I will freely admit that I am not an expert on multimater I2C so if
the above is incorrect then let me know.  As I said, though, it's
still useful to get this patch in because that's simply how the
shipping EC expects to communicate.

Thanks!  :)

-Doug

  parent reply	other threads:[~2013-03-29 18:28 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-15  0:21 [PATCH v2 1/3] i2c: mux: Add i2c-arbitrator-cros-ec 'mux' driver Doug Anderson
2013-02-15  0:21 ` [PATCH v2 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-02-15  0:21   ` Doug Anderson
2013-02-15  0:21 ` [PATCH v2 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-02-15  0:21   ` Doug Anderson
2013-02-15 16:39 ` [PATCH v2 1/3] i2c: mux: Add i2c-arbitrator-cros-ec 'mux' driver Stephen Warren
2013-02-15 16:39   ` Stephen Warren
     [not found]   ` <511E64C0.9090500-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-02-15 17:25     ` Doug Anderson
     [not found]       ` <CAD=FV=W9WwSsid_KqtDRmAkFXnneRXu5zcakDB3t4hLhOpuCtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-02-15 17:38         ` Stephen Warren
2013-02-15 17:44           ` Mark Brown
2013-02-15 17:44             ` Mark Brown
     [not found]             ` <20130215174425.GF22283-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2013-02-15 18:57               ` Doug Anderson
2013-02-15 19:46 ` [PATCH v3 " Doug Anderson
2013-02-15 19:46   ` Doug Anderson
2013-02-15 19:46   ` [PATCH v3 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-02-15 19:46     ` Doug Anderson
2013-03-05 23:48     ` Naveen Krishna Ch
2013-03-05 23:48       ` Naveen Krishna Ch
2013-03-13  7:30       ` Kukjin Kim
2013-03-13  7:30         ` Kukjin Kim
2013-03-13 15:14         ` Doug Anderson
2013-03-13 15:14           ` Doug Anderson
2013-02-15 19:46   ` [PATCH v3 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-02-15 19:46     ` Doug Anderson
2013-03-05 23:49     ` Naveen Krishna Ch
2013-03-05 23:49       ` Naveen Krishna Ch
2013-02-15 21:31   ` [PATCH v3 1/3] i2c: mux: Add i2c-arbitrator-cros-ec 'mux' driver Stephen Warren
2013-03-11 16:05   ` Doug Anderson
2013-03-11 16:05     ` Doug Anderson
2013-03-13 16:36   ` [PATCH v4 " Doug Anderson
2013-03-13 16:36     ` Doug Anderson
2013-03-13 16:36     ` [PATCH v4 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-03-13 16:36       ` Doug Anderson
2013-03-13 16:36     ` [PATCH v4 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-03-13 16:36       ` Doug Anderson
2013-03-13 16:53     ` [PATCH v4 1/3] i2c: mux: Add i2c-arbitrator-cros-ec 'mux' driver Stephen Warren
2013-03-13 16:53       ` Stephen Warren
2013-03-13 16:59       ` Doug Anderson
2013-03-13 16:59         ` Doug Anderson
2013-03-13 17:29         ` Stephen Warren
2013-03-13 17:29           ` Stephen Warren
2013-04-08 10:26     ` Wolfram Sang
2013-04-08 10:26       ` Wolfram Sang
     [not found]       ` <20130408102617.GC3496-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2013-04-09 20:26         ` Doug Anderson
     [not found]     ` <1363192583-26363-1-git-send-email-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2013-03-26 20:23       ` Doug Anderson
     [not found]         ` <20130329115821.GC6359@the-dreams.de>
     [not found]           ` <20130329115821.GC6359-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2013-03-29 18:28             ` Doug Anderson [this message]
     [not found]               ` <20130403191938.GA7875@the-dreams.de>
     [not found]                 ` <20130403191938.GA7875-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2013-04-05 19:37                   ` Simon Glass
2013-04-05 20:03                     ` Stephen Warren
2013-04-05 20:03                       ` Stephen Warren
2013-04-06 18:30                       ` Guenter Roeck
2013-04-06 20:11                         ` Wolfram Sang
2013-04-07 18:10                           ` Guenter Roeck
2013-04-08  9:55                             ` Wolfram Sang
2013-04-08  9:55                               ` Wolfram Sang
2013-04-09 20:12       ` [PATCH v5 1/3] i2c: mux: Add i2c-arb-gpio-challenge " Doug Anderson
2013-04-09 20:12         ` [PATCH v5 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-04-09 20:12           ` Doug Anderson
2013-04-09 20:12         ` [PATCH v5 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-04-09 20:12           ` Doug Anderson
2013-04-09 21:34     ` [PATCH v5 1/3] i2c: mux: Add i2c-arb-gpio-challenge 'mux' driver Doug Anderson
2013-04-09 21:34       ` Doug Anderson
2013-04-09 21:34       ` [PATCH v5 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-04-09 21:34         ` Doug Anderson
2013-04-10 10:59         ` Kukjin Kim
2013-04-10 10:59           ` Kukjin Kim
2013-04-10 11:02           ` Wolfram Sang
2013-04-10 11:02             ` Wolfram Sang
2013-04-10 14:12             ` Kukjin Kim
2013-04-10 14:12               ` Kukjin Kim
2013-04-09 21:34       ` [PATCH v5 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-04-09 21:34         ` Doug Anderson
2013-04-16  9:36       ` [PATCH v5 1/3] i2c: mux: Add i2c-arb-gpio-challenge 'mux' driver Wolfram Sang
2013-04-16  9:36         ` Wolfram Sang
2013-04-16  9:44         ` Peter Korsgaard
2013-04-16  9:44           ` Peter Korsgaard
2013-04-16 13:38         ` Guenter Roeck
2013-04-16 15:42         ` Stephen Warren
2013-04-16 15:42           ` Stephen Warren
     [not found]         ` <20130416093633.GC16978-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2013-04-16 16:25           ` Doug Anderson
2013-04-16 16:29       ` [PATCH v6 " Doug Anderson
2013-04-16 16:29         ` [PATCH v6 2/3] ARM: dts: Add i2c-arbitrator bus for exynos5250-snow Doug Anderson
2013-04-16 16:29           ` Doug Anderson
2013-04-16 16:35           ` Olof Johansson
2013-04-16 16:35             ` Olof Johansson
2013-04-16 16:29         ` [PATCH v6 3/3] ARM: dts: Add sbs-battery " Doug Anderson
2013-04-16 16:29           ` Doug Anderson
2013-04-16 16:36           ` Olof Johansson
2013-04-16 16:36             ` Olof Johansson
2013-04-16 16:34         ` [PATCH v6 1/3] i2c: mux: Add i2c-arb-gpio-challenge 'mux' driver Olof Johansson
2013-04-17  9:34           ` Wolfram Sang
     [not found]             ` <20130417093424.GC4508-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
2013-04-17 13:57               ` Olof Johansson
2013-04-17 16:35               ` Olof Johansson
2013-04-16 16:45         ` Guenter Roeck
2013-04-16 16:45           ` Guenter Roeck
     [not found]           ` <20130416164512.GB27488-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2013-04-16 16:51             ` Doug Anderson
2013-04-17  9:32         ` Wolfram Sang

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='CAD=FV=XyBZXD1dsOy4kY3CjkFiJXCO+taAJ-zZ8op6V-z9J8jQ@mail.gmail.com' \
    --to=dianders-f7+t8e8rja9g9huczpvpmw@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org \
    --cc=bhushan.r-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
    --cc=ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=girish.shivananjappa-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=grundler-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
    --cc=linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org \
    --cc=prashanth.g@sam \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=sreekumar.c-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
    --cc=yuvaraj.cd-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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 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.