Subject: Re: Audio codec device tree entries

From: David Gibson <[email-masked]>
Date: Thu, 25 Oct 2007 10:01:31 +1000

On Wed, Oct 24, 2007 at 11:19:33AM -0400, Jon Smirl wrote:
> On 10/24/07, Grant Likely <[email-masked]> wrote:
> > On 10/24/07, Timur Tabi <[email-masked]> wrote:
> > > >       codec0: i2s-codec@0 {
> > > >             compatible = "ti,tas5508";
> > > >             reg = <0>;
> > > >             i2s-handle = <&i2s@2000>;
> > > >       };
> > >
> > > I'd do this the other way around -- that is:
> > >
> > > i2s@2200 {           // PSC2
> > >         compatible = "fsl,mpc5200b-psc-i2s","fsl,mpc5200-psc-i2s";
> > >         ...
> > >         i2c-handle = <&codec0>;  /* Or something like that */
> >
> > i2c-handle is a poor property name here.  It should be 'codec-handle'.
> >  The codec could theoretically live on just about *any* control bus;
> > not just i2c.
> 
> That's one of the reasons I put the second option in the post.
> 
> In the second option the i2s driver would instantiate first. Next the
> generic code would get loaded. The generic codec will know the control
> but for the device and it can go look in the i2c node for the address.
> i2c node still lists all of the devices on the i2c bus. But the codecs
> are in the i2c-handle property so they don't trigger a second loading
> of the codec.
> 
> A fundamental question is, which bus should trigger the loading of the
> generic codec driver. The answer to this determines how the device
> tree should look.

No!  Device tree layout should not be determined by the instantiation
model used by Linux drivers right now.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson