]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/soc/codecs/tlv320aic3x.c
Merge git://git.infradead.org/mtd-2.6
[linux-2.6-omap-h63xx.git] / sound / soc / codecs / tlv320aic3x.c
index c075a28949f6095e687a5a0e76d4858f7386fd8b..630684f4a0bc5ec1c91741902d9b8d7d3bcc1fa9 100644 (file)
@@ -39,7 +39,6 @@
 #include <linux/pm.h>
 #include <linux/i2c.h>
 #include <linux/platform_device.h>
-#include <sound/driver.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
@@ -661,33 +660,53 @@ struct aic3x_rate_divs {
 /* AIC3X codec mclk clock divider coefficients */
 static const struct aic3x_rate_divs aic3x_divs[] = {
        /* 8k */
+       {12000000, 8000, 48000, 0xa, 16, 3840},
+       {19200000, 8000, 48000, 0xa, 10, 2400},
        {22579200, 8000, 48000, 0xa, 8, 7075},
        {33868800, 8000, 48000, 0xa, 5, 8049},
        /* 11.025k */
+       {12000000, 11025, 44100, 0x6, 15, 528},
+       {19200000, 11025, 44100, 0x6, 9, 4080},
        {22579200, 11025, 44100, 0x6, 8, 0},
        {33868800, 11025, 44100, 0x6, 5, 3333},
        /* 16k */
+       {12000000, 16000, 48000, 0x4, 16, 3840},
+       {19200000, 16000, 48000, 0x4, 10, 2400},
        {22579200, 16000, 48000, 0x4, 8, 7075},
        {33868800, 16000, 48000, 0x4, 5, 8049},
        /* 22.05k */
+       {12000000, 22050, 44100, 0x2, 15, 528},
+       {19200000, 22050, 44100, 0x2, 9, 4080},
        {22579200, 22050, 44100, 0x2, 8, 0},
        {33868800, 22050, 44100, 0x2, 5, 3333},
        /* 32k */
+       {12000000, 32000, 48000, 0x1, 16, 3840},
+       {19200000, 32000, 48000, 0x1, 10, 2400},
        {22579200, 32000, 48000, 0x1, 8, 7075},
        {33868800, 32000, 48000, 0x1, 5, 8049},
        /* 44.1k */
+       {12000000, 44100, 44100, 0x0, 15, 528},
+       {19200000, 44100, 44100, 0x0, 9, 4080},
        {22579200, 44100, 44100, 0x0, 8, 0},
        {33868800, 44100, 44100, 0x0, 5, 3333},
        /* 48k */
+       {12000000, 48000, 48000, 0x0, 16, 3840},
+       {19200000, 48000, 48000, 0x0, 10, 2400},
        {22579200, 48000, 48000, 0x0, 8, 7075},
        {33868800, 48000, 48000, 0x0, 5, 8049},
        /* 64k */
-       {22579200, 96000, 96000, 0x1, 8, 7075},
-       {33868800, 96000, 96000, 0x1, 5, 8049},
+       {12000000, 64000, 96000, 0x1, 16, 3840},
+       {19200000, 64000, 96000, 0x1, 10, 2400},
+       {22579200, 64000, 96000, 0x1, 8, 7075},
+       {33868800, 64000, 96000, 0x1, 5, 8049},
        /* 88.2k */
+       {12000000, 88200, 88200, 0x0, 15, 528},
+       {19200000, 88200, 88200, 0x0, 9, 4080},
        {22579200, 88200, 88200, 0x0, 8, 0},
        {33868800, 88200, 88200, 0x0, 5, 3333},
        /* 96k */
+       {12000000, 96000, 96000, 0x0, 16, 3840},
+       {19200000, 96000, 96000, 0x0, 10, 2400},
        {22579200, 96000, 96000, 0x0, 8, 7075},
        {33868800, 96000, 96000, 0x0, 5, 8049},
 };
@@ -808,6 +827,8 @@ static int aic3x_set_dai_sysclk(struct snd_soc_codec_dai *codec_dai,
        struct aic3x_priv *aic3x = codec->private_data;
 
        switch (freq) {
+       case 12000000:
+       case 19200000:
        case 22579200:
        case 33868800:
                aic3x->sysclk = freq;
@@ -1188,10 +1209,8 @@ static struct i2c_driver aic3x_i2c_driver = {
                .name = "aic3x I2C Codec",
                .owner = THIS_MODULE,
        },
-       .id = I2C_DRIVERID_I2CDEV,
        .attach_adapter = aic3x_i2c_attach,
        .detach_client = aic3x_i2c_detach,
-       .command = NULL,
 };
 
 static struct i2c_client client_template = {