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 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.
