linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Jon Smirl" <jonsmirl@gmail.com>
To: "PowerPC dev list" <Linuxppc-dev@ozlabs.org>
Subject: Revisited, audio codec device tree entries.
Date: Sun, 18 Nov 2007 13:10:10 -0500	[thread overview]
Message-ID: <9e4733910711181010q50c08d2ek8413af74d58cf0ce@mail.gmail.com> (raw)

I've been trying to write ALSA SOC code supporting audio codecs and
device trees.

This looks ok for the main device tree entires. Codecs are hung off
from their controlling bus. It may still need a little tweaking.

		ac97@2200 {		// PSC2
			compatible = "mpc5200b-psc-ac97","mpc5200-psc-ac97";
			cell-index = <1>;
			reg = <2200 100>;
			interrupts = <2 2 0>;
			interrupt-parent = <&mpc5200_pic>;
			codec@0 {
				compatible = "idt,stac9766";
				reg = <0>;
			};
		};

		i2c@3d40 {
			compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
			reg = <3d40 40>;
			interrupts = <2 10 0>;
			interrupt-parent = <&mpc5200_pic>;
			fsl5200-clocking;

			codec@15 {
				compatible = "ti,tas5504";
				reg = <15>;
				i2s-handle = <i2s@2400>;
			};
		};
		
		i2s@2400 {		// PSC4
			compatible = "mpc5200b-psc-i2s","mpc5200-psc-i2s";
			cell-index = <1>;
			reg = <2400 100>;
			interrupts = <2 3 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

In the ALSA SOC model the i2s, codec and ac97 drivers are all generic.
A fabric driver tells specifically how a generic codec is wired into
the board. What I haven't been able figure out is how to load the
right fabric driver.

It is starting to make more sense to me that fabric driver actually
does represent a physical device - the cluster of wires. David Gibson
made a proposal that a fabric node wrap the codec node. That doesn't
work very well with the i2c bus where the bus code is walking down the
nodes and triggering the instantiation of the i2c drivers.

But what about putting the fabric node inside the codec node?

			codec@15 {
				compatible = "ti,tas5504";
				reg = <15>;
				i2s-handle = <i2s@2400>;
				codec-fabric {
					compatible = "digispeaker,fabric"
				};
			};

			codec@0 {
				compatible = "idt,stac9766";
				reg = <0>;
				codec-fabric {
					compatible = "efika,fabric"
				};
			};

This sort of makes sense, the ac97/i2c bus is connected to the codec,
which is then connected to the fabric.

The example used in the ALSA doc of an ac97 chip needing a fabric
driver was a case where the ac97 chip has an external amp. The fabric
driver uses a GPIO to turn the amp on/off with suspend/resume.


-- 
Jon Smirl
jonsmirl@gmail.com

             reply	other threads:[~2007-11-18 18:10 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-18 18:10 Jon Smirl [this message]
2007-11-18 20:16 ` Revisited, audio codec device tree entries Segher Boessenkool
2007-11-18 21:49   ` Jon Smirl
2007-11-18 22:46     ` Matt Sealey
2007-11-18 23:31       ` Matt Sealey
2007-11-18 23:47         ` Jon Smirl
2007-11-19  0:12         ` David Gibson
2007-11-19  0:22           ` Jon Smirl
2007-11-19 12:48           ` Segher Boessenkool
2007-11-20  0:22             ` David Gibson
2007-11-19 16:31           ` Matt Sealey
2007-11-19 17:05             ` Scott Wood
2007-11-19 18:55               ` Grant Likely
2007-11-20  0:33             ` David Gibson
2007-11-19 12:07         ` Segher Boessenkool
2007-11-19 16:58           ` Matt Sealey
2007-11-20  1:42             ` David Gibson
2007-11-19 14:57       ` Timur Tabi
2007-11-19 15:33         ` Jon Smirl
2007-11-19 15:02 ` Timur Tabi
2007-11-19 15:15   ` Jon Loeliger
2007-11-19 15:33   ` Grant Likely
2007-11-19 16:00     ` Jon Smirl
2007-11-19 16:31       ` Grant Likely
2007-11-19 16:51         ` Jon Smirl
2007-11-19 17:33           ` Grant Likely
2007-11-19 19:20             ` Jon Smirl
2007-11-19 19:28               ` Grant Likely
2007-11-20  0:59                 ` David Gibson
2007-11-26 15:51                   ` Timur Tabi
2007-11-26 16:38                     ` Jon Smirl
2007-11-26 16:40                       ` Timur Tabi
2007-11-19 16:45       ` Timur Tabi
2007-11-19 22:37         ` Jon Smirl
2007-11-19 16:44     ` Timur Tabi
2007-11-19 16:53       ` Grant Likely
2007-11-19 16:55       ` Jon Smirl
2007-11-19 15:37   ` Jon Smirl
2007-11-19 15:42     ` Grant Likely

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=9e4733910711181010q50c08d2ek8413af74d58cf0ce@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=Linuxppc-dev@ozlabs.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 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).