diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
index bfcccd9..657ee2b 100644
--- a/arch/arm/mach-omap2/board-am335xevm.c
+++ b/arch/arm/mach-omap2/board-am335xevm.c
@@ -302,6 +302,19 @@ static struct snd_platform_data am335x_evm_snd_data1 = {
 	.rxnumevt	= 1,
 };
 
+static struct snd_platform_data bone_snd_data1 = {
+	.tx_dma_offset	= 0x46000000,	/* McASP0*/
+	.rx_dma_offset	= 0x46000000,
+	.op_mode	= DAVINCI_MCASP_IIS_MODE,
+	.num_serializer	= ARRAY_SIZE(am335x_iis_serializer_direction1),
+	.tdm_slots	= 2,
+	.serial_dir	= am335x_iis_serializer_direction1,
+	.asp_chan_q	= EVENTQ_2,
+	.version	= MCASP_VERSION_3,
+	.txnumevt	= 1,
+	.rxnumevt	= 1,
+};
+
 static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
 	{
 		.mmc            = 1,
@@ -799,11 +812,18 @@ static struct pinmux_config mcasp1_pin_mux[] = {
 	{"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
 	{"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
 	{"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
-	{"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 |
-						AM33XX_PIN_INPUT_PULLDOWN},
+	{"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
 	{NULL, 0},
 };
 
+/* Module pin mux for mcasp0 */
+static struct pinmux_config mcasp0_pin_mux[] = {
+	{"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUX_MODE0 |AM33XX_PIN_INPUT_PULLDOWN},
+	{"mcasp0_fsx.mcasp0_fsx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
+	{"mcasp0_ahclkr.mcasp0_axr2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
+	{"mcasp0_ahclkx.mcasp0_axr3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
+	{NULL, 0},
+};
 
 /* Module pin mux for mmc0 */
 static struct pinmux_config mmc0_pin_mux[] = {
@@ -1531,7 +1551,7 @@ static void bbtoys35lcd_init(int evm_id, int profile)
 
 static void dvi_init(int evm_id, int profile)
 {
-    setup_pin_mux(dvi_pin_mux);
+	setup_pin_mux(dvi_pin_mux);
 	gpio_request(BEAGLEBONEDVI_PDn, "DVI_PDn");
 	gpio_direction_output(BEAGLEBONEDVI_PDn, 1);
 
@@ -2030,9 +2050,9 @@ static struct lis3lv02d_platform_data lis331dlh_pdata = {
 };
 
 static struct i2c_board_info am335x_i2c_boardinfo1[] = {
-	{
-		I2C_BOARD_INFO("tlv320aic3x", 0x1b),
-	},
+//	{
+//		I2C_BOARD_INFO("tlv320aic3x", 0x1b),
+//	},
 	{
 		I2C_BOARD_INFO("lis331dlh", 0x18),
 		.platform_data = &lis331dlh_pdata,
@@ -2129,6 +2149,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
 			pr_info("BeagleBone cape: initializing DVI cape\n");
 			dvi_init(0,0);
+			//mcasp0_init(0,0);
 	}
 	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
 		pr_info("BeagleBone cape: initializing LCD cape\n");
@@ -2205,6 +2226,9 @@ static struct at24_platform_data cape_eeprom_info = {
 };
 
 static struct i2c_board_info __initdata cape_i2c_boardinfo[] = {
+	{
+		I2C_BOARD_INFO("tlv320aic3x", 0x1b),
+	},
         {
                 I2C_BOARD_INFO("24c256", 0x54),
                 .platform_data  = &cape_eeprom_info,
@@ -2241,6 +2265,15 @@ static void mcasp1_init(int evm_id, int profile)
 	return;
 }
 
+/* Setup McASP 0 */
+static void mcasp0_init(int evm_id, int profile)
+{
+	/* Configure McASP */
+	setup_pin_mux(mcasp0_pin_mux);
+	am335x_register_mcasp(&bone_snd_data1, 1);
+	return;
+}
+
 static void mmc1_init(int evm_id, int profile)
 {
 	setup_pin_mux(mmc1_pin_mux);
@@ -2598,6 +2631,7 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
 	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
+	{mcasp0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
 	{bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL},
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index f6a62c3..b3e7258 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -34,6 +34,7 @@
 static int evm_hw_params(struct snd_pcm_substream *substream,
 			 struct snd_pcm_hw_params *params)
 {
+	pr_info("XXXXXXXXXXXXXXXXX evm_hw_params");
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
 	struct snd_soc_dai *codec_dai = rtd->codec_dai;
 	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
@@ -63,16 +64,19 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 
 	/* set codec DAI configuration */
+	pr_info("XXXXXXXXXXXXXXXXX evm_hw codec_dai");
 	ret = snd_soc_dai_set_fmt(codec_dai, AUDIO_FORMAT);
 	if (ret < 0)
 		return ret;
 
 	/* set cpu DAI configuration */
+	pr_info("XXXXXXXXXXXXXXXXX evm_hw cpu_dai");
 	ret = snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);
 	if (ret < 0)
 		return ret;
 
 	/* set the codec system clock */
+	pr_info("XXXXXXXXXXXXXXXXX evm_hw CLOCK_OUT");
 	ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);
 	if (ret < 0)
 		return ret;
@@ -131,6 +135,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
 /* Logic for a aic3x as connected on a davinci-evm */
 static int evm_aic3x_init(struct snd_soc_pcm_runtime *rtd)
 {
+	pr_info("XXXXXXXXXXXXXXXXX evm_aic3x_init");
 	struct snd_soc_codec *codec = rtd->codec;
 	struct snd_soc_dapm_context *dapm = &codec->dapm;
 
@@ -244,9 +249,9 @@ static struct snd_soc_dai_link da850_evm_dai = {
 static struct snd_soc_dai_link am335x_evm_dai = {
 	.name = "TLV320AIC3X",
 	.stream_name = "AIC3X",
-	.cpu_dai_name = "davinci-mcasp.1",
+	.cpu_dai_name = "davinci-mcasp.0",
 	.codec_dai_name = "tlv320aic3x-hifi",
-	.codec_name = "tlv320aic3x-codec.2-001b",
+	.codec_name = "tlv320aic3x-codec.3-001b",
 	.platform_name = "davinci-pcm-audio",
 	.init = evm_aic3x_init,
 	.ops = &evm_ops,
@@ -306,6 +311,7 @@ static int __init evm_init(void)
 	int index;
 	int ret;
 
+	pr_info("XXXXXXXXXXXXXXXXX evm_init");
 	if (machine_is_davinci_evm()) {
 		evm_snd_dev_data = &dm6446_snd_soc_card_evm;
 		index = 0;
@@ -325,19 +331,29 @@ static int __init evm_init(void)
 		evm_snd_dev_data = &da850_snd_soc_card;
 		index = 0;
 	} else if (machine_is_am335xevm()) {
+		pr_info("XXXXXXXXXXXXXXXXX evm_init is_am335");
 		evm_snd_dev_data = &am335x_snd_soc_card;
 		index = 0;
 	} else
 		return -EINVAL;
 
+	pr_info("XXXXXXXXXXXXXXXXX evm_init soc-audio");
 	evm_snd_device = platform_device_alloc("soc-audio", index);
-	if (!evm_snd_device)
+	if (!evm_snd_device) {
+		pr_info("XXXXXXXXXXXXXXXXX evm_init device_alloc FAIL");
 		return -ENOMEM;
+	}
 
+	pr_info("XXXXXXXXXXXXXXXXX evm_init set_drvdata");
 	platform_set_drvdata(evm_snd_device, evm_snd_dev_data);
+	pr_info("XXXXXXXXXXXXXXXXX evm_init device_add");
 	ret = platform_device_add(evm_snd_device);
-	if (ret)
+	if (ret) {
+		pr_info("XXXXXXXXXXXXXXXXX evm_init device_put");
 		platform_device_put(evm_snd_device);
+	} else {
+		pr_info("XXXXXXXXXXXXXXXXX evm_init device_add FAIL: %d", ret);
+	}
 
 	return ret;
 }
