From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Hunter Subject: Re: [RFC PATCH 07/13] dt-bindings: i2c: Add support for 'i2c-bus' subnode Date: Mon, 20 Jun 2016 12:15:39 +0100 Message-ID: <5767D05B.5000709@nvidia.com> References: <1466165027-17917-1-git-send-email-jonathanh@nvidia.com> <1466165027-17917-8-git-send-email-jonathanh@nvidia.com> <20160617163054.GD32754@leverpostej> <20160617164525.GL27475@ulmo.ba.sec> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20160617164525.GL27475-EkSeR96xj6Pcmrwk2tT4+A@public.gmane.org> Sender: linux-tegra-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Thierry Reding , Mark Rutland Cc: David Airlie , Stephen Warren , Alexandre Courbot , Wolfram Sang , Linus Walleij , Rob Herring , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: devicetree@vger.kernel.org On 17/06/16 17:45, Thierry Reding wrote: > * PGP Signed by an unknown key > > On Fri, Jun 17, 2016 at 05:30:54PM +0100, Mark Rutland wrote: >> On Fri, Jun 17, 2016 at 01:03:41PM +0100, Jon Hunter wrote: >>> The I2C driver core for boards using device-tree assumes any subnode of >>> an I2C adapter in the device-tree blob as being a I2C slave device. >>> Although this makes complete sense, some I2C adapters may have subnodes >>> which are not I2C slaves but subnodes presenting other features. For >>> example some Tegra devices have an I2C interface which may share its >>> pins with other devices and to share these pins subnodes for >>> representing these pins so they have be shared via the pinctrl framework >>> are needed. >>> >>> To allow I2C adapters to have non-I2C specific subnodes in device-tree >>> that are not parsed by the I2C driver core by adding support for a >>> 'i2c-bus' subnode where I2C slaves can be placed. If the 'i2c-bus' >>> subnode is present then all I2C slaves must be placed under this subnode. >>> >>> Signed-off-by: Jon Hunter >>> --- >>> Documentation/devicetree/bindings/i2c/i2c.txt | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/i2c/i2c.txt b/Documentation/devicetree/bindings/i2c/i2c.txt >>> index f31b2ad1552b..ed56b08c7e6e 100644 >>> --- a/Documentation/devicetree/bindings/i2c/i2c.txt >>> +++ b/Documentation/devicetree/bindings/i2c/i2c.txt >>> @@ -32,6 +32,14 @@ wants to support one of the below features, it should adapt the bindings below. >>> - clock-frequency >>> frequency of bus clock in Hz. >>> >>> +- i2c-bus >>> + For I2C adapters that have child nodes that are a mixture of both I2C >>> + devices and non-I2C devices (such as a pin controller), the 'i2c-bus' >>> + subnode can be used for populating I2C devices to prevent the I2C core >>> + from attempting to add any non-i2c nodes as I2C devices. If 'i2c-bus' >>> + subnode is present then all I2C slaves must be added under this >>> + subnode. >> >> The general idea seems sound. >> >> It would be good if we could remove the mention of the I2C core, >> something like: >> >> - i2c-bus >> For I2C adapters that have child nodes that are a mixture of both I2C >> devices and non-I2C devices (such as a pin controller), the 'i2c-bus' >> subnode can be used for populating I2C devices. If an 'i2c-bus' >> subnode is present, only subnodes of this will be considered as >> I2C slaves. >> >> How are #address-cells and #size-cells handled in this case? I assume >> that they should live under the i2c-bus subnode, which should be called >> out. > > Good catch. Yes, I think the i2c-bus subnode would be the right place > for #address-cells and #size-cells. Yes, indeed. Thanks. Will fix. Cheers Jon -- nvpublic