linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: linuxppc-dev@ozlabs.org, alsa-devel@alsa-project.org
Subject: Re: [PATCH] ASoC drivers for the Freescale MPC8610 SoC
Date: Wed, 02 Jan 2008 09:29:57 -0600	[thread overview]
Message-ID: <477BADF5.9060003@freescale.com> (raw)
In-Reply-To: <9e4733910801012027p4be16b92r43af773f4e5ae531@mail.gmail.com>

Jon Smirl wrote:
> On 12/19/07, Timur Tabi <timur@freescale.com> wrote:
>>  sound/soc/fsl/fsl_ssi.c                      |  614 +++++++++++++++++++
>>  sound/soc/fsl/fsl_ssi.h                      |  224 +++++++
> 
> I'm confused about this part. You built a driver for the mpc8610 ssi
> port.  This port has a device tree entry.
> 
> +		ssi@16000 {
> +			compatible = "fsl,ssi";
> +			cell-index = <0>;
> +			reg = <16000 100>;
> +			interrupt-parent = <&mpic>;
> +			interrupts = <3e 2>;
> +			fsl,mode = "i2s-slave";
> +			codec {
> +				compatible = "cirrus,cs4270";
> +				/* MCLK source is a stand-alone oscillator */
> +				bus-frequency = <bb8000>;
> +			};
> +		};
> 
> But then you don't create an of_platform_driver for this device.
> Instead you create one for the fabric driver, struct
> of_platform_driver mpc8610_hpcd_of_driver, and directly link the SSI
> driver into it.

That's the best plan I came up with.  This is apparently fixed in ASoC 
V2.  From ASoC V1's perspective, the fabric driver must be the master. 
However, it doesn't make sense to have a node in the device tree for the 
fabric driver, because there is no such "device".  The fabric driver is 
an abstraction.  So I need to chose some other node to probe the fabric 
driver with.  I chose the SSI, since each SSI can have only one codec.

> 
> +static struct of_device_id mpc8610_hpcd_match[] = {
> +	{
> +		.compatible = "fsl,ssi",
> +	},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(of, mpc8610_hpcd_match);
> +
> +static struct of_platform_driver mpc8610_hpcd_of_driver = {
> +	.owner  	= THIS_MODULE,
> +	.name   	= "mpc8610_hpcd",
> +	.match_table    = mpc8610_hpcd_match,
> +	.probe  	= mpc8610_hpcd_probe,
> +	.remove 	= mpc8610_hpcd_remove,
> +};
> 
> static int mpc8610_hpcd_probe(struct of_device *ofdev,
> 	const struct of_device_id *match)
> {
> .....
> 	machine_data->dai.cpu_dai = fsl_ssi_create_dai(&ssi_info);
> 
> Isn't this two separate drivers that have been combined into one
> driver? Or does the fsl_ssi channel only work on the mpc8610_hpcd?

Sorry, I don't understand your question.

> This is the problem of knowing how to load the fabric driver that I
> was talking about in the other threads.

Yes, and the decision I made on this topic is to have the fabric driver 
probed on the SSI node.

For ASoC V1, I believe the problem is undefined and each driver should 
be implemented in whatever way works best.

 > A device that can occur on
> more than one chip ".compatible = "fsl,ssi"," is being used to pull in
> a platform specific fabric driver, "mpc8610_hpcd". You can use the
> kernel config system to select the right driver for ".compatible =
> "fsl,ssi"," that matches you hardware and compile it in.

Ok, I think I understand that.

> But that doesn't work in my environment. My generic channel is
> "fsl,i2s". I have four different systems booting off from a shared
> network drive. Each of these systems needs the common "fsl,i2s" driver
> but they all four need different fabric drivers.

That, I don't understand.  fsl,ssi is pretty much the same thing as 
fsl,i2s, since the SSI *is* an I2S device.  It's also an AC97 device, 
which is why I added the fsl,mode property.

The fabric driver is specific to the board.  So you should be using 
Kconfig to select the fabric driver.  There is no node in the device 
tree for fabric drivers.  I thought that was the consensus.

Are you saying that you want to use the same kernel on four different 
systems?  If so, then you need to find a way to compile all fabric 
drivers together, and at boot time each fabric driver will decide 
whether it will do anything.

  reply	other threads:[~2008-01-02 15:29 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-20  0:03 [PATCH] ASoC drivers for the Freescale MPC8610 SoC Timur Tabi
2007-12-20  4:06 ` Olof Johansson
2007-12-20 14:24   ` Timur Tabi
2007-12-20 13:54     ` [alsa-devel] " Takashi Iwai
2007-12-20 17:04       ` Timur Tabi
2007-12-21  5:28       ` Lee Revell
2007-12-23  3:23         ` Timur Tabi
2007-12-20 22:39     ` Olof Johansson
2007-12-20 22:37       ` Timur Tabi
2007-12-20 22:43         ` Scott Wood
2007-12-23  2:58           ` Timur Tabi
2008-01-02 18:08             ` Scott Wood
2007-12-20 14:47 ` Jon Loeliger
2007-12-20 22:29 ` Jon Smirl
2007-12-20 22:32   ` Timur Tabi
2007-12-20 22:38     ` Jon Smirl
2007-12-20 22:40       ` Timur Tabi
2007-12-20 22:44         ` Scott Wood
2007-12-20 23:13           ` Jon Smirl
2007-12-21  0:00             ` David Gibson
2008-01-01 17:25 ` Jon Smirl
2008-01-01 17:42   ` Jon Smirl
2008-01-02 15:19     ` Timur Tabi
2008-01-02 15:34       ` Jon Smirl
2008-01-03 17:54         ` Timur Tabi
2008-01-03 18:13           ` Grant Likely
2008-01-03 18:20             ` Timur Tabi
2008-01-03 18:32               ` Grant Likely
2008-01-03 23:51           ` David Gibson
2008-01-05  2:39             ` [alsa-devel] " Timur Tabi
2008-01-06  0:46               ` David Gibson
2008-01-07 14:24                 ` Mark Brown
2008-01-07 15:52                 ` Timur Tabi
2008-01-07 18:28                   ` Mark Brown
2008-01-10  3:49                     ` David Gibson
2008-01-10  5:41                       ` Jon Smirl
2008-01-10 10:30                         ` Liam Girdwood
2008-01-10 15:39                           ` Timur Tabi
2008-01-10 16:01                             ` Grant Likely
2008-01-10 16:03                               ` Timur Tabi
2008-01-10 20:10                                 ` Jon Smirl
2008-01-10 20:13                                   ` Timur Tabi
2008-01-10 20:24                                     ` Grant Likely
2008-01-10 20:35                                       ` Timur Tabi
2008-01-10 20:39                                     ` Jon Smirl
2008-01-10 20:44                                       ` Timur Tabi
2008-01-07 18:44                   ` Liam Girdwood
2008-01-07 18:45                     ` Timur Tabi
2008-01-02 16:12       ` Grant Likely
2008-01-03 18:08         ` Timur Tabi
2008-01-03 18:17           ` Grant Likely
2008-01-03 18:54             ` Scott Wood
2008-01-03 19:13               ` Grant Likely
2008-01-03 19:18                 ` Scott Wood
2008-01-03 23:13                   ` [alsa-devel] " Mark Brown
2008-01-05  2:35                 ` Timur Tabi
2008-01-05  3:28                   ` Grant Likely
2008-01-02  0:26   ` David Gibson
2008-01-02 15:10   ` Timur Tabi
2008-01-02 17:23     ` [alsa-devel] " Mark Brown
2008-01-03 18:23       ` Timur Tabi
2008-01-03 23:00         ` Mark Brown
2008-01-05  2:43           ` Timur Tabi
2008-01-07 13:37             ` Mark Brown
2008-01-02  4:27 ` Jon Smirl
2008-01-02 15:29   ` Timur Tabi [this message]
2008-01-02 15:56     ` Jon Smirl
2008-01-02 16:32       ` Grant Likely
2008-01-02 17:12         ` Jon Smirl
2008-01-02 17:22           ` Grant Likely
2008-01-02 18:43             ` Jon Smirl
2008-01-02 18:50               ` Grant Likely
2008-01-02 18:56                 ` Jon Smirl
2008-01-03  4:46           ` David Gibson
2008-01-03 14:33             ` Jon Smirl
2008-01-03 17:57       ` Timur Tabi
2008-01-02 16:28     ` Grant Likely
2008-01-02 18:49       ` [alsa-devel] " Mark Brown
2008-01-03 18:16         ` Timur Tabi
2008-01-03 23:47           ` David Gibson
2008-01-04 13:39             ` Mark Brown
2008-01-03 18:14       ` Timur Tabi
2008-01-03 18:25         ` Grant Likely
2008-01-03 18:28           ` Timur Tabi
2008-01-03 18:38             ` Grant Likely
2008-01-03  4:44     ` David Gibson
2008-01-03 14:54       ` Jon Smirl
2008-01-04  5:01         ` David Gibson
2008-01-03 18:16       ` Timur Tabi

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=477BADF5.9060003@freescale.com \
    --to=timur@freescale.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=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).