da732x.c (f0b99ca041258ed0eb27dc724de22d84dab78a7c) da732x.c (cd9241e44af3d49977c39ddadbefbb719e2a4baf)
1/*
2 * da732x.c --- Dialog DA732X ALSA SoC Audio Driver
3 *
4 * Copyright (C) 2012 Dialog Semiconductor GmbH
5 *
6 * Author: Michal Hajduk <Michal.Hajduk@diasemi.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 21 unchanged lines hidden (view full) ---

30#include <asm/div64.h>
31
32#include "da732x.h"
33#include "da732x_reg.h"
34
35
36struct da732x_priv {
37 struct regmap *regmap;
1/*
2 * da732x.c --- Dialog DA732X ALSA SoC Audio Driver
3 *
4 * Copyright (C) 2012 Dialog Semiconductor GmbH
5 *
6 * Author: Michal Hajduk <Michal.Hajduk@diasemi.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 21 unchanged lines hidden (view full) ---

30#include <asm/div64.h>
31
32#include "da732x.h"
33#include "da732x_reg.h"
34
35
36struct da732x_priv {
37 struct regmap *regmap;
38 struct snd_soc_codec *codec;
38
39 unsigned int sysclk;
40 bool pll_en;
41};
42
43/*
44 * da732x register cache - default settings
45 */

--- 165 unchanged lines hidden (view full) ---

211 snd_soc_write(codec, DA732X_REG_CP_CTRL3, DA732X_CP_1MHZ);
212 break;
213 case DA732X_DISABLE_CP:
214 snd_soc_write(codec, DA732X_REG_CLK_EN2, DA732X_CP_CLK_DIS);
215 snd_soc_write(codec, DA732X_REG_CP_HP2, DA732X_HP_CP_DIS);
216 snd_soc_write(codec, DA732X_REG_CP_CTRL1, DA723X_CP_DIS);
217 break;
218 default:
39
40 unsigned int sysclk;
41 bool pll_en;
42};
43
44/*
45 * da732x register cache - default settings
46 */

--- 165 unchanged lines hidden (view full) ---

212 snd_soc_write(codec, DA732X_REG_CP_CTRL3, DA732X_CP_1MHZ);
213 break;
214 case DA732X_DISABLE_CP:
215 snd_soc_write(codec, DA732X_REG_CLK_EN2, DA732X_CP_CLK_DIS);
216 snd_soc_write(codec, DA732X_REG_CP_HP2, DA732X_HP_CP_DIS);
217 snd_soc_write(codec, DA732X_REG_CP_CTRL1, DA723X_CP_DIS);
218 break;
219 default:
219 pr_err(KERN_ERR "Wrong charge pump state\n");
220 pr_err("Wrong charge pump state\n");
220 break;
221 }
222}
223
224static const DECLARE_TLV_DB_SCALE(mic_boost_tlv, DA732X_MIC_PRE_VOL_DB_MIN,
225 DA732X_MIC_PRE_VOL_DB_INC, 0);
226
227static const DECLARE_TLV_DB_SCALE(mic_pga_tlv, DA732X_MIC_VOL_DB_MIN,

--- 1274 unchanged lines hidden (view full) ---

1502 break;
1503 }
1504
1505 codec->dapm.bias_level = level;
1506
1507 return 0;
1508}
1509
221 break;
222 }
223}
224
225static const DECLARE_TLV_DB_SCALE(mic_boost_tlv, DA732X_MIC_PRE_VOL_DB_MIN,
226 DA732X_MIC_PRE_VOL_DB_INC, 0);
227
228static const DECLARE_TLV_DB_SCALE(mic_pga_tlv, DA732X_MIC_VOL_DB_MIN,

--- 1274 unchanged lines hidden (view full) ---

1503 break;
1504 }
1505
1506 codec->dapm.bias_level = level;
1507
1508 return 0;
1509}
1510
1511static int da732x_probe(struct snd_soc_codec *codec)
1512{
1513 struct da732x_priv *da732x = snd_soc_codec_get_drvdata(codec);
1514 struct snd_soc_dapm_context *dapm = &codec->dapm;
1515
1516 da732x->codec = codec;
1517
1518 dapm->idle_bias_off = false;
1519
1520 da732x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
1521
1522 return 0;
1523}
1524
1525static int da732x_remove(struct snd_soc_codec *codec)
1526{
1527
1528 da732x_set_bias_level(codec, SND_SOC_BIAS_OFF);
1529
1530 return 0;
1531}
1532
1510static struct snd_soc_codec_driver soc_codec_dev_da732x = {
1533static struct snd_soc_codec_driver soc_codec_dev_da732x = {
1534 .probe = da732x_probe,
1535 .remove = da732x_remove,
1511 .set_bias_level = da732x_set_bias_level,
1512 .controls = da732x_snd_controls,
1513 .num_controls = ARRAY_SIZE(da732x_snd_controls),
1514 .dapm_widgets = da732x_dapm_widgets,
1515 .num_dapm_widgets = ARRAY_SIZE(da732x_dapm_widgets),
1516 .dapm_routes = da732x_dapm_routes,
1517 .num_dapm_routes = ARRAY_SIZE(da732x_dapm_routes),
1518 .set_pll = da732x_set_dai_pll,

--- 71 unchanged lines hidden ---
1536 .set_bias_level = da732x_set_bias_level,
1537 .controls = da732x_snd_controls,
1538 .num_controls = ARRAY_SIZE(da732x_snd_controls),
1539 .dapm_widgets = da732x_dapm_widgets,
1540 .num_dapm_widgets = ARRAY_SIZE(da732x_dapm_widgets),
1541 .dapm_routes = da732x_dapm_routes,
1542 .num_dapm_routes = ARRAY_SIZE(da732x_dapm_routes),
1543 .set_pll = da732x_set_dai_pll,

--- 71 unchanged lines hidden ---