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 --- |