From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from az33egw01.freescale.net (az33egw01.freescale.net [192.88.158.102]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "az33egw01.freescale.net", Issuer "Thawte Premium Server CA" (verified OK)) by ozlabs.org (Postfix) with ESMTP id 09CAADDFA4 for ; Tue, 16 Oct 2007 05:32:42 +1000 (EST) Message-ID: <4713BE5E.3030406@freescale.com> Date: Mon, 15 Oct 2007 14:24:14 -0500 From: Scott Wood MIME-Version: 1.0 To: Grant Likely Subject: Re: [PATCH 2/2] i2c: Add devtree-aware iic support for PPC4xx References: <200710151529.11485.sr@denx.de> <20071015163216.GA8127@gate.ebshome.net> <20071015185340.GB4474@loki.buserror.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Cc: Jean Delvare , linuxppc-dev@ozlabs.org, Stefan Roese , i2c@lm-sensors.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Grant Likely wrote: > On 10/15/07, Scott Wood wrote: >> On Mon, Oct 15, 2007 at 10:57:48AM -0600, Grant Likely wrote: >>> Segher is recommending that we use an aliases node as per the open >>> firmware example for this. I think in this case it would look >>> something like this (but I'm not the expert): >>> >>> aliases { >>> IIC0 = "/path/to/bus/iic@0x2000"; >>> IIC1 = "/path/to/bus/iic@0x2000"; >>> }; >> I think this is overly complicated; something like linux,i2c-index in the >> i2c adapter node would be simpler. > > But not perhaps better. Enumeration is a system-wide thing. It does > make sense to group all the device enumerations in one place. For purposes of generating a Linux bus number, having to scan all aliases for a matching path and turn IIC0/IIC1 into a number is a bit silly. For associating a device node with a human readable label, I'd prefer a "label" property in the device node, rather than doing it backwards with aliases. > As per your point below; if all the i2c devices are children of the > adapter, then yes you are right that the bus number doesn't matter to > the user. But it *does* matter for things like serial and ethernet > ports. And a label property would be great for that. :-) >> Though, I don't see what the problem with the original approach is, as long >> as the numbers are chosen in the same way when registering i2c clients based >> on the children of the adapter node. There's no concept in the hardware >> itself of a bus number. > > Even if you take this approach, the driver still need to know what bus > number to use (as per the i2c infrastructure). It is not sane for an > i2c bus driver to attempt to assign the bus number itself because it > could conflict with another arbitrarily chosen bus number from another > driver. Hence why global bus numbers suck. :-) However, statically chosen numbers should only be done for platform devices, not dynamic things such as PCI, so in practice I don't think it'd be a problem. -Scott