devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Jean-Michel Hautbois <jhautbois@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org, galak@codeaurora.org,
	ijc+devicetree@hellion.org.uk, mark.rutland@arm.com,
	pawel.moll@arm.com, robh+dt@kernel.org, wsa@the-dreams.de,
	laurent.pinchart@ideasonboard.com, lars@metafoo.de,
	Jean-Michel Hautbois <jean-michel.hautbois@veo-labs.com>
Subject: Re: [PATCH v2] i2c: Add generic support passing secondary devices addresses
Date: Mon, 18 Apr 2016 08:20:11 -0700	[thread overview]
Message-ID: <1460992811.8946.22.camel@linux.intel.com> (raw)
In-Reply-To: <20160415080111.GD1714@lahna.fi.intel.com>

On Fri, 2016-04-15 at 11:01 +0300, Mika Westerberg wrote:
> +Srinivas
> 
> On Sun, Jan 31, 2016 at 04:33:00PM +0100, Jean-Michel Hautbois wrote:
> > 
> > Some I2C devices have multiple addresses assigned, for example each
> > address
> > corresponding to a different internal register map page of the
> > device.
> > So far drivers which need support for this have handled this with a
> > driver
> > specific and non-generic implementation, e.g. passing the
> > additional address
> > via platform data.
> > 
> > This patch provides a new helper function called
> > i2c_new_secondary_device()
> > which is intended to provide a generic way to get the secondary
> > address
> > as well as instantiate a struct i2c_client for the secondary
> > address.
> > 
> > The function expects a pointer to the primary i2c_client, a name
> > for the secondary address and an optional default address. The name
> > is used
> > as a handle to specify which secondary address to get.
> > 
> > The default address is used as a fallback in case no secondary
> > address
> > was explicitly specified. In case no secondary address and no
> > default
> > address were specified the function returns NULL.
> > 
> > For now the function only supports look-up of the secondary address
> > from devicetree, but it can be extended in the future
> > to for example support board files and/or ACPI.
> It was not clear to me but does this support more than two addresses?

In past when we were looking at this for Invensese MPU60XX device, we
had two I2cSerialBus() entries, but they belong to two different
devices. The first one for the MPU60XX and second one for another
device which is a slave for MPU60XX. This slave device can be also be
reached from master i2c controller, by disabling i2c master capability
of MPU60XX device.
So ACPI spec is very vague in specifying what they really meant.

> For example we might a device with 3 I2cSerialBus() connectors:
> 
>     Device (CAM1)
>     {
>         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource
> Settings
>         {
>             Name (SBUF, ResourceTemplate ()
>             {
>                 ...
>                 I2cSerialBus (0x0010, ControllerInitiated,
> 0x00061A80,
>                     AddressingMode7Bit, "\\_SB.I2C4",
>                     0x00, ResourceConsumer, ,)
>                 I2cSerialBus (0x000C, ControllerInitiated,
> 0x00061A80,
>                     AddressingMode7Bit, "\\_SB.I2C4",
>                     0x00, ResourceConsumer, ,)
>                 I2cSerialBus (0x0054, ControllerInitiated,
> 0x00061A80,
>                     AddressingMode7Bit, "\\_SB.I2C4",
>                     0x00, ResourceConsumer, ,)
>             })
>             Return (SBUF) /* \_SB_.I2C4.CAM1._CRS.SBUF */
>         }
>         ...
> 
> Furthermore those do not have names.
Correct. Better to use indexes. I think Mika also proposed similar API
in past.

Thanks,
Srinivas

  reply	other threads:[~2016-04-18 15:20 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-31 15:33 [PATCH v2] i2c: Add generic support passing secondary devices addresses Jean-Michel Hautbois
2016-02-01 14:46 ` Rob Herring
2016-03-24 10:11   ` Jean-Michel Hautbois
2016-03-24 14:02     ` Rob Herring
2016-04-14 19:10 ` Wolfram Sang
2016-04-15  8:01 ` Mika Westerberg
2016-04-18 15:20   ` Srinivas Pandruvada [this message]
     [not found]     ` <1460992811.8946.22.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-04-18 15:26       ` Lars-Peter Clausen
     [not found]         ` <5714FCBE.3060009-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2016-04-19 12:40           ` Mika Westerberg
2016-04-19 13:02             ` Lars-Peter Clausen
2016-04-19 13:16               ` Mika Westerberg
2016-04-19 13:31                 ` Lars-Peter Clausen
     [not found]                   ` <5716333D.1040106-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2016-04-19 14:40                     ` Mika Westerberg
2016-04-19 16:27                       ` Srinivas Pandruvada
     [not found]                       ` <20160419144027.GH1725-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2016-04-24 20:14                         ` Wolfram Sang
2016-04-25  7:25                           ` Mika Westerberg
2016-04-25  7:39                             ` Wolfram Sang
2016-04-25  7:41                               ` Mika Westerberg
2016-06-03  8:24                                 ` Lars-Peter Clausen
2016-04-19 13:49                 ` Wolfram Sang
2016-04-19 14:42                   ` Mika Westerberg
2016-06-05  6:15 ` 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=1460992811.8946.22.camel@linux.intel.com \
    --to=srinivas.pandruvada@linux.intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jean-michel.hautbois@veo-labs.com \
    --cc=jhautbois@gmail.com \
    --cc=lars@metafoo.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --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=robh+dt@kernel.org \
    --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: 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).