I¹m connecting up a TLV320AIC3106EVM to the BBB using the connections described in the table below. The LTC3603 is a simple switching regulator to generate the 1.8V required by the codec core. I¹m having difficulty getting this setup to record/play. Here is a description of my setup.
BBB TLV320AIC3106EVM LTC3603 P9 J17 J16 J15 J5 1 GND 4 5 GND GND 3 3V3 9 3V3 2 VOUT_EN 5 VDD_5V0 3 +5V VIN 7 SYS_5V0 10 SYS_RESETN 14 RESETN 19 I2C2.SCL 16 SCL 20 I2C2.SDA 20 SDA 25 mcasp0_ahclkx 17 MCLK 28 mcasp0_axr2 13 DOUT 29 mcasp0_fsx 7 WCLK 30 mcasp0_axr0 11 DIN 31 mcasp0_aclkx 3 BCLK 43 GND 18 7 1V8D VOUT I created a DT Overlay file as follows: /* * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; /plugin/; / { compatible = "ti,beaglebone-black"; /* identification */ part-number = "BB-BONE-AUDI-02"; version = "00A0", "A0"; /* state the resources this cape uses */ exclusive-use = /* the pin header uses */ "P9.25", /* mcasp0: mcasp0_ahclkx */ "P9.28", /* mcasp0: mcasp0_axr2 */ "P9.29", /* mcasp0: mcasp0_fsx */ "P9.30", /* mcasp0: mcasp0_axr0 */ "P9.31", /* mcasp0: mcasp0_aclkx */ /* the hardware ip uses */ "mcasp0"; fragment@0 { target = <&am33xx_pinmux>; __overlay__ { bone_audio_cape_audio_pins: pinmux_bone_audio_cape_audio_pins { pinctrl-single,pins = < 0x1ac 0x20 /* mcasp0_ahclkx, INPUT | MODE0 */ 0x19c 0x22 /* mcasp0_axr2, INPUT | MODE2 */ 0x194 0x20 /* mcasp0_fsx, INPUT | MODE0 */ 0x198 0x00 /* mcasp0_axr0, OUTPUT | MODE0 */ 0x190 0x20 /* mcasp0_aclkx, INPUT | MODE0 */ >; }; }; }; fragment@1 { target = <&i2c2>; __overlay__ { #address-cells = <1>; #size-cells = <0>; tlv320aic3x: tlv320aic3x@1b { compatible = "ti,tlv320aic3x"; reg = <0x1b>; status = "okay"; }; }; }; fragment@2 { target = <&mcasp0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&bone_audio_cape_audio_pins>; status = "okay"; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; num-serializer = <16>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 >; tx-num-evt = <1>; rx-num-evt = <1>; }; }; fragment@3 { target = <&ocp>; __overlay__ { sound { compatible = "ti,da830-evm-audio"; ti,model = "DA830 EVM"; ti,audio-codec = <&tlv320aic3x>; ti,mcasp-controller = <&mcasp0>; ti,codec-clock-rate = <12000000>; ti,audio-routing = "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", "Line Out", "LLOUT", "Line Out", "RLOUT", "MIC3L", "Mic Bias 2V", "MIC3R", "Mic Bias 2V", "Mic Bias 2V", "Mic Jack", "LINE1L", "Line In", "LINE2L", "Line In", "LINE1R", "Line In", "LINE2R", "Line In"; }; }; }; }; I installed the DT Overlay as follows: root@arm:~# export SLOTS=/sys/devices/bone_capemgr.9/slots root@arm:~# echo BB-BONE-AUDI-02 > $SLOTS [ 135.754365] bone-capemgr bone_capemgr.9: part_number 'BB-BONE-AUDI-02', version 'N/A' [ 135.762656] bone-capemgr bone_capemgr.9: slot #7: generic override [ 135.769128] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 7 [ 135.777138] bone-capemgr bone_capemgr.9: slot #7: 'Override Board Name,00A0,Override Manuf,BB-BONE-AUDI-02' [ 135.787412] bone-capemgr bone_capemgr.9: slot #7: Requesting part number/version based 'BB-BONE-AUDI-02-00A0.dtbo [ 135.798164] bone-capemgr bone_capemgr.9: slot #7: Requesting firmware 'BB-BONE-AUDI-02-00A0.dtbo' for board-name 'Override Board Name', version '00A0' [ 135.815726] bone-capemgr bone_capemgr.9: slot #7: dtbo 'BB-BONE-AUDI-02-00A0.dtbo' loaded;converting to live tree [ 135.826979] bone-capemgr bone_capemgr.9: slot #7: #4 overlays [ 135.855146] 1-001b supply IOVDD not found, using dummy regulator [ 135.861527] 1-001b supply DVDD not found, using dummy regulator [ 135.867774] 1-001b supply AVDD not found, using dummy regulator [ 135.874006] 1-001b supply DRVDD not found, using dummy regulator [ 135.886504] davinci_evm sound.13: tlv320aic3x-hifi <-> 48038000.mcasp mapping ok [ 135.910330] bone-capemgr bone_capemgr.9: slot #7: Applied #4 overlays. Which seems to have installed successfully. To confirm: root@arm:~# cat /proc/asound/devices 2: [ 0- 0]: digital audio playback 3: [ 0- 0]: digital audio capture 4: [ 0] : control 33: : timer root@arm:~# aplay -L null Discard all samples (playback) or generate zero samples (capture) default:CARD=EVM DA830 EVM, Default Audio Device sysdefault:CARD=EVM DA830 EVM, Default Audio Device root@arm:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: EVM [DA830 EVM], device 0: AIC3X tlv320aic3x-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 Now I try to play a wav file as follows: root@arm:~# aplay /home/linuxcnc/beepbeep.wav Playing WAVE '/home/linuxcnc/beepbeep.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono I don¹t hear any sound. When I check dmesg, I see the following error: root@arm:~# dmesg -c [ 304.856905] ALSA sound/core/pcm_native.c:1531 playback drain error (DMA or IRQ trouble?) Does anyone have any suggestions on what might be wrong. Clearly I have to setup the codec using amixer, but I haven¹t seen any consistent documentation to show how this might be done. Anyone have any suggestions? Regards, John -- 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 beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.