Hey could you please tell me how do I access data like left_in, right_in and left_out,right_out (in for microphone and out for headphones) on the wm8731.I think since you also have the same coded you will be the best person to help me out here. I want to access and manipulate audio data. So in the first place how do I read the audio data say left_in and right_in using I2S or SPI? Please let me know.
The WM8731 and most other codecs have two separate communication interfaces: The first one is for commands/control. Normally I2C (that's what I have described in my post) or SPI (also supported by WM8731) are used for this purpose. The second one is for sending audio data (samples). This is handled by I2S/DSP interface. To play or record sound from audio device first it is needed to program the codec accordingly (set data format, clock divisors, set mixer controls, etc.); next it is needed to actually write or read audio samples using the I2S. Edison has the SST DSP that does this work. You'll need to use ALSA/ASoC layer to access it. There are simple applications (arecord/asound) for audio recording/playback. And there is a lot of information on the Internet regarding ALSA programming.
In the post linked above I have described a way to play sound using a "dummy" codec already present in the official Intel Edison firmware. Similar procedure might work for recording, but you'll need to take care of programming WM8731 registers to setup the input.
Where are the arecord and asound applications? Just guide me over the I2S. I can set the appropriate registers using I2C. Where is the dummy codec firmware and description?
arecord and asound are part of alsa-utils package which is installed on Edison by default. Search the Internet for usage examples.
I2S, dummy codec, and such - read my post above, and also the audio setup guide here: http://download.intel.com/support/edison/sb/edisonaudio_332434001.pdf
I have Edison mini board connected to TI PCM3070 codec evb. I am able to config codec via spi and play from ADC input to DAC output, but not able to play from Edison to DAC output per your post above and Intel audio guide. In hardware setup besides JP19.10/11 and JP20.9/10 I have also connected Edison JP17.13 to codec as master clock input.
Prior running "mpg123 music.mp3" should I run any other linux configuration (I have image 2.1)? When I have no codec connected to Edison I do not see any life on JP19 and JP20 pins mentioned above on oscilloscope. When I make Edison to generate master clock to codec and codec to generate BCLK and WCLK to Edison I see pulses on I2S DOUT (viewed from codec side) but 0V on DIN while mpg123 is running.
Any idea what I am missing here?
Could you please post your code and pinout setup for the WM8731 codec. Congrats that you did it.
Could you please post your code and setup for the machine driver for the WM8731. I checked your blog but I could not find complete information.
I'm trying to connect I2S codec CX20810 to Edison, I saw you have done such work, but i seems i can't visit the site you posted Audio Block for Intel Edison - Malinov Family Web Presence, is there other places you posted? Thanks very much!
Just got my edison..!!
I have got couple of question for you...
Well could you please tell me what is the total power consumption when you attach your wolfson board to Edison?
Nice work on patch, not used it yet, as I am yet to get the codec board designed...!!
But still thanks in advance for this.
the default linux audio drive, in Intel Edison board, is compatible with Ti Soc tlv320aic3204?
I am using the W8731 as mentioned in this page of yours:
But when I give i2cset I get this error
codecset.sh: 105: codecset.sh: i2cset: not found
codecset.sh: 108: codecset.sh: i2cset: not found
codecset.sh: 111: codecset.sh: i2cset: not found
codecset.sh: 114: codecset.sh: i2cset: not found
codecset.sh: 117: codecset.sh: i2cset: not found
codecset.sh: 123: codecset.sh: i2cset: not found
codecset.sh: 127: codecset.sh: i2cset: not found
codecset.sh: 130: codecset.sh: i2cset: not found
How shall I solve this error.