[Nook Color Android Development] fattire:
I spent a bit more with the aic3100. Indeed it does look like an updated version of the dac3100. I've got a lot of new stuff, including changes to the peripherals board and init.encore.rc and stuff, but so far I can't get anything to show in /dev/snd... if you turn that minidsp they show up momentarily, but we don't have the ahrdware for that so it's bogus... argh.

fwiw here is what I adde dto the peripherals file:

diff --git a/arch/arm/mach-omap2/board-encore-peripherals.c b/arch/arm/mach-omap2/board-encore-peripherals.c
index 76d44d5..34e023b 100644
--- a/arch/arm/mach-omap2/board-encore-peripherals.c
+++ b/arch/arm/mach-omap2/board-encore-peripherals.c
@@ -91,6 +91,44 @@ static void kxtf9_dev_init(void)
gpio_direction_input(KXTF9_GPIO_FOR_IRQ);
}

+#define AUDIO_CODEC_IRQ_GPIO 59
+#define AIC3100_NAME "tlv320aic3100"
+#define AIC3100_I2CSLAVEADDRESS 0x18
+
+#if defined(CONFIG_SND_SOC_TLV320DAC3100) || defined(CONFIG_SND_SOC_TLV320DAC3100) || defined(CONFIG_SND_SOC_TLV320AIC
+#define AUDIO_CODEC_POWER_ENABLE_GPIO 103
+#define AUDIO_CODEC_RESET_GPIO 37
+
+static void audio_dac_3100_dev_init(void)
+{
+ printk("board-3621_evt1a.c: audio_dac_3100_dev_init ...\n");
+ if (gpio_request(AUDIO_CODEC_RESET_GPIO, "AUDIO_CODEC_RESET_GPIO") < 0) {
+ printk(KERN_ERR "can't get AUDIO_CODEC_RESET_GPIO \n");
+ return;
+ }
+
+ printk("board-3621_evt1a.c: audio_dac_3100_dev_init > set AUDIO_CODEC_RESET_GPIO to output Low!\n");
+ gpio_direction_output(AUDIO_CODEC_RESET_GPIO, 0);
+ gpio_set_value(AUDIO_CODEC_RESET_GPIO, 0);
+
+ printk("board-3621_evt1a.c: audio_dac_3100_dev_init ...\n");
+ if (gpio_request(AUDIO_CODEC_POWER_ENABLE_GPIO, "AUDIO DAC3100 POWER ENABLE") < 0) {
+ printk(KERN_ERR "can't get AUDIO_CODEC_POWER_ENABLE_GPIO \n");
+ return;
+ }
+
+ printk("board-3621_evt1a.c: audio_dac_3100_dev_init > set AUDIO_CODEC_POWER_ENABLE_GPIO to output and value hig
+ gpio_direction_output(AUDIO_CODEC_POWER_ENABLE_GPIO, 0);
+ gpio_set_value(AUDIO_CODEC_POWER_ENABLE_GPIO, 1);
+
+ /* 1 msec delay needed after PLL power-up */
+ mdelay (1);
+
+ printk("board-3621_evt1a.c: audio_dac_3100_dev_init > set AUDIO_CODEC_RESET_GPIO to output and value high!\n");
+ gpio_set_value(AUDIO_CODEC_RESET_GPIO, 1);
+}
+#endif
+

struct kxtf9_platform_data kxtf9_platform_data_here = {
.min_interval = 1,
@@ -369,9 +407,16 @@ static struct platform_device encore_lcd_touch_regulator_device = {
},
};

+static struct platform_device encore_aic3110 = {
+ .name = "tlv320aic3110-codec",
+ .id = -1,
+};
+
+
static struct platform_device *encore_board_devices[] __initdata = {
&encore_keys_gpio,
&encore_lcd_touch_regulator_device,
+// &encore_aic3110
};

static struct platform_device omap_vwlan_device = {
@@ -733,7 +778,11 @@ static struct i2c_board_info __initdata encore_i2c_bus2_info[] = {
I2C_BOARD_INFO(FT_I2C_NAME, FT5x06_I2C_SLAVEADDRESS),
.platform_data = &ft5x06_platform_data,
.irq = OMAP_GPIO_IRQ(OMAP_FT5x06_GPIO),
- },
+ },
+ {
+ I2C_BOARD_INFO(AIC3100_NAME, AIC3100_I2CSLAVEADDRESS),
+ .irq = OMAP_GPIO_IRQ(AUDIO_CODEC_IRQ_GPIO),
+ },

};

@@ -770,7 +819,9 @@ void __init zoom_peripherals_init(void)
usb_musb_init(NULL);
enable_board_wakeup_source();
omap_serial_init();
-
+#if defined(CONFIG_SND_SOC_TLV320DAC3100) || defined(CONFIG_SND_SOC_TLV320DAC3100) || defined(CONFIG_SND_SOC_TLV320AIC
+ audio_dac_3100_dev_init();
+#endif
max8903_charger_init();
kxtf9_dev_init();
max17042_dev_init();

Also, numerous GPIO #s need to be pulled from the encore version and dropped into the acclaim version. Someone can double check, please:

tlv320aic3100.h:

#define CODEC_CLOCK 13000000lu // 19200000

#define HEADSET_DETECT_GPIO_PIN 102

#define AUDIO_CODEC_HPH_DETECT_GPIO (157)

#define AUDIO_CODEC_PWR_ON_GPIO (103)

#define AUDIO_CODEC_INTERRUPT (39)

#define AUDIO_CODEC_RESET_GPIO (37)

#define AUDIO_CODEC_PWR_ON_GPIO_NAME "audio_codec_pwron"

#define AUDIO_CODEC_RESET_GPIO_NAME "audio_codec_reset"

#define AIC31xx_RATES (SNDRV_PCM_RATE_8000_48000)

(then there's a bunch more stuff below that...)

Taking a break for now.