On Wed, Apr 21, 2010 at 4:07 PM, Timur Tabi <timur@xxxxxxxxxxxxx> wrote: > Cirrus Logic CS4270 ALSA SoC Codec Driver > cs4270 0-004f: found device at i2c address 4F > cs4270 0-004f: hardware revision 3 > cs4270 0-004f: codec register CS4270 79 > cs4270 0-004f: dai register cs4270 0 > Registered DAI 'cs4270.0' > Registered codec 'CS4270.79' > ... > > soc-audio soc-audio: CODEC CS4270 not registered > > Does this mean that my fabric driver should be looking for "CS4270.79" > instead of just "CS4270"? Ok, I figured out the solution. I need to add this to mpc8610_hpcd_probe(): + iprop = of_get_property(codec_np, "reg", NULL); + if (!iprop) { + dev_err(&ofdev->dev, "codec node is missing 'reg' property\n"); + goto error; + } + machine_data->dai.codec_id = *iprop; So I have another question. Currently, I need to do this: machine_data->dai.codec_dai_drv = &cs4270_dai; /* The codec_dai we want */ In other words, I still need to have a global variable in my codec driver called "cs4270_dai" that the fabric driver has to access. This is a real problem because it means that my fabric driver has to be hard-coded with the information on the codec that's attached to the SSI. However, I already have that information in the device tree, I can extract all the information I need from the device tree. If I can get rid of the assignment of "cs4270_dai", I can make my machine driver completely codec-independent. -- Timur Tabi Linux kernel developer at Freescale _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel