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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.