static int alc5632_probe(struct snd_soc_codec *codec) { struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec); int ret; codec->control_data = alc5632->regmap; ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP); if (ret != 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); return ret; } /* */ alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY); switch (alc5632->id) { case 0x5c: snd_soc_add_codec_controls(codec, alc5632_vol_snd_controls, ARRAY_SIZE(alc5632_vol_snd_controls)); break; default: return -EINVAL; } return ret; }
static int alc5632_resume(struct snd_soc_codec *codec) { struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec); regcache_sync(alc5632->regmap); alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY); return 0; }
static int alc5632_probe(struct snd_soc_codec *codec) { struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec); /* power on device */ alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY); switch (alc5632->id) { case 0x5c: snd_soc_add_codec_controls(codec, alc5632_vol_snd_controls, ARRAY_SIZE(alc5632_vol_snd_controls)); break; default: return -EINVAL; } return 0; }
/* power down chip */ static int alc5632_remove(struct snd_soc_codec *codec) { alc5632_set_bias_level(codec, SND_SOC_BIAS_OFF); return 0; }