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.

Reply via email to