Scott Ingham

Registering a new Codec

Discussion created by Scott Ingham on Jan 18, 2012

I am trying to connect a SABRE Tablet to another platform via UART4 and PCM data (using the ESAI port). I have modified the board to add the wires I need for the interconnect and made the necessary changes for the UART. I’m trying to set up the other board as a new codec and running into problems. Initially I just want to set up the system for the new board without actually having it connected. I want to be able to see the PCM data coming out to the pins as a first step. As a starting point I’m using the cs42888 driver and machine layer files (cs42888.c and imx-3stack-cs42888.c) since that codec is connected via ESAI in the SABRE Auto platform.  The steps I’ve taken are as follows:


  1. Configure the IOMUX for the necessary pins.
  2. Remove support for the sgtl5000 codec.
  3. Comment out any i2c references (since there’s nothing to talk to).


When I boot the system I expect to see the cs42888 in the debug listing under “ALSA Device List” but the only device that shows up is the SPDIF device. Everything seems to run fine until I get to the platform_device_add  method in my version of imx_3stack_init. Upon the return from this method there should be a value in snd_soc_card_imx_3stack.codec, but it is null. I never get to the snd_card_register method to register the card. I’ve looked into platform_device_add and device_add methods and can’t see where there should be any further modifications.


Any ideas on what other changes would be required to make this work?