Subject: Re: [PATCH] ASoC drivers for the Freescale MPC8610 SoC

From: Timur Tabi <[email-masked]>
Date: Thu, 03 Jan 2008 11:57:40 -0600

Jon Smirl wrote:

> For this model to work you need to split your driver. fsl-ssi and
> mpc8610_hpcd need to be in  two separate drivers. 

They are two separate drivers.  sound/soc/fsl/fsl_ssi.c and 
sound/soc/fsl/mpc8610_hpcd.c

 > fsl-ssi  is easy
> enough to load since it has a device tree entry.
> 
> mpc8610_hpcd is the harder one to load since it doesn't have a device
> tree entry. What you want to do it match on the compatible field of
> the root node.
> 
> static struct of_device_id fabric_of_match[] = {
> 	{
> 		.compatible	= "fsl,MPC8610HPCD",
> 	},
> 	{},
> };
> 
> But this doesn't work since the root is the device tree isn't passed
> down into the device probe code. (Could this be fixed?)

I don't understand that sentence.  Is there a typo?

> Instead we could make the separated mpc8610_hpcd fabric driver attach
> to fsl,ssi.
> 
> static struct of_device_id fabric_of_match[] = {
> 	{
> 		.compatible	= "fsl,ssi",
> 	},
> 	{},
> };
> 
> Then in it's probe code check for the right platform.

That's what I do.  I attach to fsl,ssi, gather the information from the device 
tree, and then call a private API to initialize the SSI driver.

-- 
Timur Tabi
Linux Kernel Developer @ Freescale