Hi Robin:
with printk statements, i've isolated the error to this instruction:

ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);

but i don't know what is wrong... the sysclk variable is:

unsigned int sysclk = ((struct snd_soc_card_drvdata_davinci *)
               snd_soc_card_get_drvdata(soc_card))->sysclk;
Just linke in the evm_hw_params

I've noticed that you used:

ret = snd_soc_dai_set_sysclk(cpu_dai, 0, 0, SND_SOC_CLOCK_IN);

If i'm getting it right, this is to set the cpu_dai sysclock, but i dont
get why you used 0 in the frequency parameter. Also you never used the
function to set the codec_dai sysclk... Is it not necessary? I'll try
commenting this line




2016-01-09 11:55 GMT-03:00 Pablo Fonovich <[email protected]>:

> Hi Robin:
> I intend to implement a portable multitrack recorder, that's why i choose
> this codec, it has many inputs and outputs, good sample rate and bit
> resolution, and all in a single chip.
> I can't find wendelin's mail direction, so i think i'll just write to that
> posts, but they are a bit old i think. I have already looked at them, but i
> was more confused by that time, perhaps now i can understand a bit more.
>
> If i find out anything i will continue posting here, so if someone is
> interested in this project can look at ti...
>
> Please if you find any documentation tell me!
>
> Thanks
>
> 2016-01-08 19:51 GMT-03:00 Robin Scheibler <[email protected]>:
>
>> Maybe also this can help:
>>
>> http://mailman.alsa-project.org/pipermail/alsa-devel/2013-February/059433.html
>>
>> R
>>
>> On 8 janv. 2016, at 23:49, Robin Scheibler <[email protected]> wrote:
>>
>> Hi Pablo,
>>
>> I don’t know for 4.2. Try to read the
>> sound/alsa/soc/davinci/davinci-mcasp.c file to understand which
>> functionalities are implemented. I used the kernel from Robert C Nelson’s
>> repo on github.
>>
>> After a quick search on google, I saw you are not the first person to
>> attempt to connect this codec to the BBB.
>> http://www.spinics.net/lists/alsa-devel/msg41291.html
>> Maybe you can try to contact this Wendelin Klimann.
>>
>> BTW, this PCM3168 seems like a very neat chip. What exactly are you
>> building ?
>>
>> Cheers,
>> Robin
>>
>> On 8 janv. 2016, at 23:17, Pablo Fonovich <[email protected]>
>> wrote:
>>
>> Thanks Robin,
>> Im using latest stable kernel, think is 4.2, i can check when i get
>> home... i will add printk statements, as you suggested...
>> Another question. I inted to use one mcasp serializer for 4 channels...
>> in the am335x datasheet it seems possible, so i configured 4 tdm slots in
>> the device tree instead of 2, but if i try to record with -c 6 it says
>> again the "channels count non available". Do you know if its possible? its
>> quite frustrating to work without propper documentation, but in need this
>> project to get my title...
>>
>> And last thing, where you able to get alsamixer working?
>> Thanks very much
>>
>> 2016-01-08 19:03 GMT-03:00 Robin Scheibler <[email protected]>:
>>
>>> Hi Pablo,
>>>
>>> What is the kernel version you are using ? I have finally used kernel
>>> 3.14 because in 3.8 it seems that the mcasp driver implementation could not
>>> support more than two channels.
>>>
>>> I was in the same position as you. I mostly dug as much as possible from
>>> TI documentation and also read the drivers for other chipsets in the kernel
>>> code. Then, I also used
>>> the sitara am355xx data sheet to understand how McASP works. It took me
>>> quite some time to piece together how things work. Still now I do not fully
>>> understand. The problem is that there is no proper documentation for the
>>> ALSA SoC wrt embedded platforms such as the BBB.
>>>
>>> Note that the TI example code might not be for exactly the same kernel
>>> version you are using. There might be discrepancies.
>>>
>>> I suggest you run a search on the source code to find where the error
>>> “ASoC: machine hw_params failed” is generated. You can add printk
>>> statements in your code so that you can later check in the kernel log that
>>> things are happening as you expect.
>>>
>>> Cheers,
>>> Robin
>>>
>>> On 8 janv. 2016, at 01:25, Pablo Fonovich <[email protected]>
>>> wrote:
>>>
>>> sorry, the message also states:
>>>
>>> arecord: set_params:1297: Unable to install hw params:
>>> ACCESS:  RW_INTERLEAVED
>>> FORMAT:  S24_LE
>>> SUBFORMAT:  STD
>>> SAMPLE_BITS: 32
>>> FRAME_BITS: 128
>>> CHANNELS: 4
>>> RATE: 96000
>>> PERIOD_TIME: (21333 21334)
>>> PERIOD_SIZE: 2048
>>> PERIOD_BYTES: 32768
>>> PERIODS: 4
>>> BUFFER_TIME: (85333 85334)
>>> BUFFER_SIZE: 8192
>>> BUFFER_BYTES: 131072
>>> TICK_TIME: 0
>>> # aplay -f S24_LE -r 96000 ../Yam*wav
>>> Warning: format is changed to S16_LE
>>> Playing WAVE '../Yamaha-TG100-Ocarina-C5.wav' : Signed 16 bit Little
>>> Endian, Rate 44100 Hz, Stereo
>>> [  102.291787] davinci_evm sound: ASoC: machine hw_params failed: -524
>>> aplay: set_params:1297: Unable to install hw params:
>>> ACCESS:  RW_INTERLEAVED
>>> FORMAT:  S16_LE
>>> SUBFORMAT:  STD
>>> SAMPLE_BITS: 16
>>> FRAME_BITS: 32
>>> CHANNELS: 2
>>> RATE: 44100
>>> PERIOD_TIME: (125011 125012)
>>> PERIOD_SIZE: 5513
>>> PERIOD_BYTES: 22052
>>> PERIODS: 4
>>> BUFFER_TIME: (500045 500046)
>>> BUFFER_SIZE: 22052
>>> BUFFER_BYTES: 88208
>>> TICK_TIME: 0
>>>
>>>
>>> 2016-01-07 21:24 GMT-03:00 Pablo Fonovich <[email protected]>:
>>>
>>>> Thanks very much, that was a problem. But now another error appears:
>>>> "davinci_evm sound: ASoC: machine hw_params failed: -524". Do you know what
>>>> it means, or where can i find the meaning? I assume this means there is
>>>> something wrong when i created the pcm3168_hw_params in the alsa machine
>>>> layer... but i don't know the problem... where did you look for info? only
>>>> in that TI guide? I attach my files, and if is not much trouble for you i
>>>> would be grateful if you help me...
>>>>
>>>> i've noticed that some functions you used in davinci_evm.c where not
>>>> explained in that guide... and it's very difficult for a noob like me in
>>>> this subject for understainding what to do... I've just based my pcm3168.c
>>>> in another driver, and i really don't quite understand much of what is
>>>> going on, nor found any simple documentation about it. If you could give me
>>>> some hints it would be great!
>>>>
>>>> Thanks very much..
>>>>
>>>> 2016-01-07 17:30 GMT-03:00 Robin Scheibler <[email protected]>:
>>>>
>>>>> Hi Pablo,
>>>>>
>>>>> With McASP it is not possible to capture less than 2 channels. Try
>>>>> with -c 2 argument.
>>>>>
>>>>> Best,
>>>>> Robin
>>>>>
>>>>> On 7 janv. 2016, at 20:16, [email protected] wrote:
>>>>>
>>>>> Hi Robin:
>>>>>
>>>>> I'm doing a similar project, but with a PCM3168 codec... I also
>>>>> followed the guide
>>>>> http://processors.wiki.ti.com/index.php/Sitara_Linux_Audio_DAC_Example
>>>>> Anyway there are lots of things that are not very clear for me...
>>>>> <http://processors.wiki.ti.com/index.php/Sitara_Linux_Audio_DAC_Example>
>>>>>
>>>>> In my case, i use codec as clock slave, and synch, so the problem you
>>>>> had should not affect to me... But when i try to record it says:
>>>>>
>>>>>  arecord -D hw:0,0 -f S24_LE -c 1 -r 96000 -t wav test.wav
>>>>> Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 96000
>>>>> Hz, Mono
>>>>> arecord: set_params:1239: Channels count non available
>>>>>
>>>>> Could you help me?
>>>>>
>>>>> On Sunday, May 24, 2015 at 4:38:43 AM UTC-3, Robin Scheibler wrote:
>>>>>>
>>>>>> Dear all,
>>>>>>
>>>>>> I have created a custom cape around the STA321MP
>>>>>> <http://www.st.com/web/en/catalog/sense_power/FM125/CL935/SC534/PF251500d.d24>
>>>>>> chip from ST Microelectronics. It has 6 MEMS microphones and outputs them
>>>>>> on an I2S bus with 3 data lines. I am trying to use mcasp0 on the 
>>>>>> boneblack
>>>>>> side to receive the data. I am now to the point where the codec
>>>>>> configuration happens correctly (I can see the i2s signals with a logic
>>>>>> analyzer) and a soundcard is detected. However, when I try to record 
>>>>>> sound
>>>>>> with arecord, I get the following error:
>>>>>>
>>>>>> root@beaglebone:~# arecord -l
>>>>>>> **** List of CAPTURE Hardware Devices ****
>>>>>>> card 0: EVM [STA321MP EVM], device 0: STA321MP sta321mp-audio-0 []
>>>>>>>   Subdevices: 1/1
>>>>>>>   Subdevice #0: subdevice #0
>>>>>>> root@beaglebone:~# arecord -D hw:0,0 -f S24_LE -c 6 -r 44100 -t wav
>>>>>>> test.wav
>>>>>>> Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 44100
>>>>>>> Hz, Channels 6
>>>>>>> arecord: pcm_read:1801: read error: Input/output error
>>>>>>>
>>>>>>
>>>>>> Let me know provide more details.
>>>>>>
>>>>>>    - The codec is frame and bit clocks master
>>>>>>    - The connection to mcasp0 is the following:
>>>>>>       - Bit clock <=> P9_12 (mcasp0_aclkr_mux3)
>>>>>>       - Frame sync clock (L/R) <=>  P9_27 (mcasp0_fsr)
>>>>>>       - Data <=> P9_28 (mcasp0_axr2)
>>>>>>       - Data <=> P9_30 (mcasp0_axr0)
>>>>>>       - Data <=> P9_25 (mcasp0_axr3)
>>>>>>    - I am using kernel 3.14.41 (because 3.8 doesn't have support for
>>>>>>    mcasp with >2 channels)
>>>>>>    - I am using dtb-builder to add my device to the device tree
>>>>>>
>>>>>> All the code I have added to the kernel (codec and machine code) and
>>>>>> to the device tree is on github. Here are the links to the specific 
>>>>>> changes
>>>>>> I have made.
>>>>>>
>>>>>> kernel:
>>>>>> https://github.com/fakufaku/linux/commit/3a6680960412ef0fc3fbcc6f2c0021350039cc92
>>>>>>
>>>>>> device tree:
>>>>>> https://github.com/fakufaku/dtb-rebuilder/commit/127dbf3c82c78cc602058308ed72978b170c99a6
>>>>>>
>>>>>> It is my first time trying to code audio driver so please be
>>>>>> indulgent :) I have spent a lot of time on this but it seems I am now
>>>>>> completely stuck. I'd really appreciate some help. I'd be happy to 
>>>>>> provide
>>>>>> more clarifications on anything.
>>>>>> One thing I do not understand is if I need to add mixer bindings. And
>>>>>> also the audio routing (jack vs codec pins, etc).
>>>>>>
>>>>>> Thank you in advance!
>>>>>> Robin
>>>>>>
>>>>>
>>>>> --
>>>>> For more options, visit http://beagleboard.org/discuss
>>>>> ---
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "BeagleBoard" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> For more options, visit http://beagleboard.org/discuss
>>>>> ---
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "BeagleBoard" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>
>>> --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "BeagleBoard" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>
>>> --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "BeagleBoard" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "BeagleBoard" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "BeagleBoard" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/beagleboard/pptZ_9PTqMY/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to