struct jz_icdc {
struct regmap *regmap;
void __iomem *base;
- struct clk *clk;
};
static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_adc_tlv, 0, 150, 0);
struct jz_icdc *icdc = snd_soc_component_get_drvdata(component);
struct regmap *map = icdc->regmap;
- clk_prepare_enable(icdc->clk);
-
/* Write CONFIGn (n=1 to 8) bits.
* The value 0x0f is specified in the datasheet as a requirement.
*/
return 0;
}
-static void jz4725b_codec_dev_remove(struct snd_soc_component *component)
-{
- struct jz_icdc *icdc = snd_soc_component_get_drvdata(component);
-
- clk_disable_unprepare(icdc->clk);
-}
-
static const struct snd_soc_component_driver jz4725b_codec = {
.probe = jz4725b_codec_dev_probe,
- .remove = jz4725b_codec_dev_remove,
.set_bias_level = jz4725b_codec_set_bias_level,
.controls = jz4725b_codec_controls,
.num_controls = ARRAY_SIZE(jz4725b_codec_controls),
{
struct device *dev = &pdev->dev;
struct jz_icdc *icdc;
+ struct clk *clk;
int ret;
icdc = devm_kzalloc(dev, sizeof(*icdc), GFP_KERNEL);
if (IS_ERR(icdc->regmap))
return PTR_ERR(icdc->regmap);
- icdc->clk = devm_clk_get(&pdev->dev, "aic");
- if (IS_ERR(icdc->clk))
- return PTR_ERR(icdc->clk);
+ clk = devm_clk_get_enabled(dev, "aic");
+ if (IS_ERR(clk))
+ return PTR_ERR(clk);
platform_set_drvdata(pdev, icdc);