Commit 14345a58 authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'asoc/topic/sgtl5000' into asoc-next

parents 1ee9271d b9840124
...@@ -5,9 +5,12 @@ Required properties: ...@@ -5,9 +5,12 @@ Required properties:
- reg : the I2C address of the device - reg : the I2C address of the device
- clocks : the clock provider of SYS_MCLK
Example: Example:
codec: sgtl5000@0a { codec: sgtl5000@0a {
compatible = "fsl,sgtl5000"; compatible = "fsl,sgtl5000";
reg = <0x0a>; reg = <0x0a>;
clocks = <&clks 150>;
}; };
This diff is collapsed.
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#define _SGTL5000_H #define _SGTL5000_H
/* /*
* Register values. * Registers addresses
*/ */
#define SGTL5000_CHIP_ID 0x0000 #define SGTL5000_CHIP_ID 0x0000
#define SGTL5000_CHIP_DIG_POWER 0x0002 #define SGTL5000_CHIP_DIG_POWER 0x0002
......
...@@ -128,21 +128,11 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) ...@@ -128,21 +128,11 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
goto fail; goto fail;
} }
data->codec_clk = clk_get(&codec_dev->dev, NULL); data->codec_clk = devm_clk_get(&codec_dev->dev, NULL);
if (IS_ERR(data->codec_clk)) { if (IS_ERR(data->codec_clk))
/* assuming clock enabled by default */ goto fail;
data->codec_clk = NULL;
ret = of_property_read_u32(codec_np, "clock-frequency", data->clk_frequency = clk_get_rate(data->codec_clk);
&data->clk_frequency);
if (ret) {
dev_err(&codec_dev->dev,
"clock-frequency missing or invalid\n");
goto fail;
}
} else {
data->clk_frequency = clk_get_rate(data->codec_clk);
clk_prepare_enable(data->codec_clk);
}
data->dai.name = "HiFi"; data->dai.name = "HiFi";
data->dai.stream_name = "HiFi"; data->dai.stream_name = "HiFi";
...@@ -157,10 +147,10 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) ...@@ -157,10 +147,10 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
data->card.dev = &pdev->dev; data->card.dev = &pdev->dev;
ret = snd_soc_of_parse_card_name(&data->card, "model"); ret = snd_soc_of_parse_card_name(&data->card, "model");
if (ret) if (ret)
goto clk_fail; goto fail;
ret = snd_soc_of_parse_audio_routing(&data->card, "audio-routing"); ret = snd_soc_of_parse_audio_routing(&data->card, "audio-routing");
if (ret) if (ret)
goto clk_fail; goto fail;
data->card.num_links = 1; data->card.num_links = 1;
data->card.owner = THIS_MODULE; data->card.owner = THIS_MODULE;
data->card.dai_link = &data->dai; data->card.dai_link = &data->dai;
...@@ -170,7 +160,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) ...@@ -170,7 +160,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
ret = snd_soc_register_card(&data->card); ret = snd_soc_register_card(&data->card);
if (ret) { if (ret) {
dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret);
goto clk_fail; goto fail;
} }
platform_set_drvdata(pdev, data); platform_set_drvdata(pdev, data);
...@@ -179,8 +169,6 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) ...@@ -179,8 +169,6 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
return 0; return 0;
clk_fail:
clk_put(data->codec_clk);
fail: fail:
if (ssi_np) if (ssi_np)
of_node_put(ssi_np); of_node_put(ssi_np);
...@@ -194,10 +182,6 @@ static int imx_sgtl5000_remove(struct platform_device *pdev) ...@@ -194,10 +182,6 @@ static int imx_sgtl5000_remove(struct platform_device *pdev)
{ {
struct imx_sgtl5000_data *data = platform_get_drvdata(pdev); struct imx_sgtl5000_data *data = platform_get_drvdata(pdev);
if (data->codec_clk) {
clk_disable_unprepare(data->codec_clk);
clk_put(data->codec_clk);
}
snd_soc_unregister_card(&data->card); snd_soc_unregister_card(&data->card);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment