ASoC: UDA134X: Add UDA1345 CODEC support
authorVladimir Zapolskiy <vzapolskiy@gmail.com>
Mon, 26 Apr 2010 10:56:57 +0000 (14:56 +0400)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 26 Apr 2010 14:28:18 +0000 (15:28 +0100)
This patch adds support for Philips UDA1345 CODEC. The CODEC has only
volume control, de-emphasis, mute, DC filtering and power control features.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
include/sound/uda134x.h
sound/soc/codecs/uda134x.c

index 475ef8bb7dcde38f27e71750eeae8e99ec157f0d..509efb0501767749b74d01de3ee8ed8a6dc81c4d 100644 (file)
@@ -21,6 +21,7 @@ struct uda134x_platform_data {
 #define UDA134X_UDA1340 1
 #define UDA134X_UDA1341 2
 #define UDA134X_UDA1344 3
+#define UDA134X_UDA1345 4
 };
 
 #endif /* _UDA134X_H */
index 20deaca8e1071b2289af9f1d484a056c7ac0e9b7..2f4d7287fa3cf7f2db7342733b52de21d99d0b66 100644 (file)
@@ -431,6 +431,14 @@ SOC_ENUM("PCM Playback De-emphasis", uda134x_mixer_enum[1]),
 SOC_SINGLE("DC Filter Enable Switch", UDA134X_STATUS0, 0, 1, 0),
 };
 
+static const struct snd_kcontrol_new uda1345_snd_controls[] = {
+SOC_SINGLE("Master Playback Volume", UDA134X_DATA000, 0, 0x3F, 1),
+
+SOC_ENUM("PCM Playback De-emphasis", uda134x_mixer_enum[1]),
+
+SOC_SINGLE("DC Filter Enable Switch", UDA134X_STATUS0, 0, 1, 0),
+};
+
 static struct snd_soc_dai_ops uda134x_dai_ops = {
        .startup        = uda134x_startup,
        .shutdown       = uda134x_shutdown,
@@ -486,6 +494,7 @@ static int uda134x_soc_probe(struct platform_device *pdev)
        case UDA134X_UDA1340:
        case UDA134X_UDA1341:
        case UDA134X_UDA1344:
+       case UDA134X_UDA1345:
                break;
        default:
                printk(KERN_ERR "UDA134X SoC codec: "
@@ -551,6 +560,10 @@ static int uda134x_soc_probe(struct platform_device *pdev)
                ret = snd_soc_add_controls(codec, uda1341_snd_controls,
                                        ARRAY_SIZE(uda1341_snd_controls));
        break;
+       case UDA134X_UDA1345:
+               ret = snd_soc_add_controls(codec, uda1345_snd_controls,
+                                       ARRAY_SIZE(uda1345_snd_controls));
+       break;
        default:
                printk(KERN_ERR "%s unknown codec type: %d",
                        __func__, pd->model);