This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

McBSP on EVM and Beagle

Other Parts Discussed in Thread: ADS1174

Background:
I have an external I2S ADC that I would like to connect to the
beagleboard as a slave on McBSP1. From reading through previous posts I
gather that the easiest thing to do is to set up the MUX for McBSP1, then
change McBSP2 to McBSP1 in sound/soc/omap/omap3beagle.c. These changes
should cause any writes to /dev/ausio to show up at the expansion header
McBSP1 pins. In order to actually communicate with my ADC (ADS1174), I
would need to modify sound/soc/omap/omap-mcbsp.c and
sound/soc/codecs/twl4030.c to match my codec.

OS: Angstrom
kernel version: Linux beagle 2.6.29-omap1 #9 Thu Jul 2 18:20:30 EDT 2009
armv7l GNU/Linux

My Attempts:
1. Set up the uboot pin mux for McBSP1 the same way as MCBSP2:
 MUX_VAL(CP(MCBSP1_DX),    (IDIS | PTD | DIS | M0)) /*MCBSP1_DX*/\  
--OUTPUT
 MUX_VAL(CP(MCBSP1_CLKX),  (IDIS | PTD | DIS | M0)) /*MCBSP1_CLKX*/\
--OUTPUT
 MUX_VAL(CP(MCBSP1_FSX),   (IDIS | PTD | DIS | M0)) /*MCBSP1_FSX*/\ 
--OUTPUT
 MUX_VAL(CP(MCBSP1_DR),    (IEN  | PTD | DIS | M0)) /*MCBSP1_DR*/\  
--INPUT
 MUX_VAL(CP(MCBSP1_CLKR),  (IEN  | PTD | DIS | M0)) /*MCBSP1_CLKR*/\
--INPUT
 MUX_VAL(CP(MCBSP1_FSR),   (IEN  | PTD | EN  | M0)) /*MCBSP1_FSR*/\ 
--INPUT
 MUX_VAL(CP(MCBSP_CLKS),   (IEN  | PTU | DIS | M0)) /*McBSP_CLKS*/\ 
--INPUT (FROM PRCM)

FOR BSP 3 I USED:
 MUX_VAL(CP(MCBSP1_DX),    (IDIS | PTD | DIS | M2)) /*MCBSP3_DX*/\  
--OUTPUT
 MUX_VAL(CP(MCBSP1_CLKX),  (IDIS | PTD | DIS | M2)) /*MCBSP3_CLKX*/\
--OUTPUT
 MUX_VAL(CP(MCBSP1_FSX),   (IDIS | PTD | DIS | M2)) /*MCBSP3_FSX*/\ 
--OUTPUT
 MUX_VAL(CP(MCBSP1_DR),    (IEN  | PTD | DIS | M2)) /*MCBSP3_DR*/\  
--INPUT
 MUX_VAL(CP(MCBSP1_CLKR),  (IEN  | PTD | DIS | M4)) /*GPIO_156*/\   
--GPIO DON'T CARE
 MUX_VAL(CP(MCBSP1_FSR),   (IEN  | PTD | EN  | M4)) /*GPIO_157*/\   
--GPIO DON'T CARE
 MUX_VAL(CP(MCBSP_CLKS),   (IEN  | PTU | DIS | M0)) /*McBSP_CLKS*/\ 
--INPUT (FROM PRCM)

 BTW: I've also tried setting the pinmux in Linux, and also tried the
IDIS and IEN settings in the u-boot  a couple different ways as well.

2. Changed McBSP2 to McBSP1 in sound/soc/omap/omap3beagle.c:
*(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 0; /* McBSP1*/

3. To test this, cat File > /dev/audio
4. I scoped both the audio out jack and the McBSP1 clock and data lines.
I only see stuff come out of the McBSP2 port (by way of some vias)
nothing on McBSP1.
5. Just as a final verification that the BSP port "CLKS" was not being
sourced externally by the TWL4030,(as opposed to by the PRCM), I scoped
the TWL4030 CLKS line on r40 with BSP2 enbled, and there wasn't a clk
there.

I was expecting the audio jack to be disabled by the omap3beagle.c change
from McBSP2 to McBSP1.
Can anyone help me setup and test McBSP1? I have also tried this with
McBSP3 to no avail. Are my settings correct or do I need to make some
other changes. My first objective is to see that the McBSP1(or BSP3..can
use either) pins are "alive" before I start changing the TWL4030
codec driver to match my own.

I was able to configure the pin mux for the McBSP1 pins as GPIO's and
toggle the pins successfully.  So I believe the pinmux is working. I was
also able to read the pinmux addresses to verify their settings. I also
tracked down (using printk's) that McBSP1 was being setup rather than
McBSP2. The addresses all line up with the McBSP1 registers. Yet when I
test it, McBSP2 is still active with clock and data.

Also after configuring the pins in Linux, I disabled the I2C port to the
TWL4030 (per another user group recommendation) no joy there either.

Any help on this will be greatly appreciated. Has anyone got this
working? What BB version/OS/Uboot did you use? Help?

I also have a OMAP35X EVM board so if there is a way to get the OMAP to interface to the McBSP on the expansion header, I would be very appreciative if someone could get me pointed in the right direction.

Thanks,