Commit c0000fc6 authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Mark Brown

ASoC: tegra20: spdif: Support device-tree

Tegra20 S/PDIF driver was added in a pre-DT era and was never used since
that time. Revive driver by adding device-tree support.
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Acked-by: default avatarThierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20211204143725.31646-8-digetx@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 16736a02
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/regmap.h> #include <linux/regmap.h>
...@@ -270,7 +271,7 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev) ...@@ -270,7 +271,7 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
dev_set_drvdata(&pdev->dev, spdif); dev_set_drvdata(&pdev->dev, spdif);
spdif->clk_spdif_out = devm_clk_get(&pdev->dev, "spdif_out"); spdif->clk_spdif_out = devm_clk_get(&pdev->dev, "out");
if (IS_ERR(spdif->clk_spdif_out)) { if (IS_ERR(spdif->clk_spdif_out)) {
pr_err("Can't retrieve spdif clock\n"); pr_err("Can't retrieve spdif clock\n");
ret = PTR_ERR(spdif->clk_spdif_out); ret = PTR_ERR(spdif->clk_spdif_out);
...@@ -340,10 +341,17 @@ static const struct dev_pm_ops tegra20_spdif_pm_ops = { ...@@ -340,10 +341,17 @@ static const struct dev_pm_ops tegra20_spdif_pm_ops = {
tegra20_spdif_runtime_resume, NULL) tegra20_spdif_runtime_resume, NULL)
}; };
static const struct of_device_id tegra20_spdif_of_match[] = {
{ .compatible = "nvidia,tegra20-spdif", },
{},
};
MODULE_DEVICE_TABLE(of, tegra20_spdif_of_match);
static struct platform_driver tegra20_spdif_driver = { static struct platform_driver tegra20_spdif_driver = {
.driver = { .driver = {
.name = DRV_NAME, .name = DRV_NAME,
.pm = &tegra20_spdif_pm_ops, .pm = &tegra20_spdif_pm_ops,
.of_match_table = tegra20_spdif_of_match,
}, },
.probe = tegra20_spdif_platform_probe, .probe = tegra20_spdif_platform_probe,
.remove = tegra20_spdif_platform_remove, .remove = tegra20_spdif_platform_remove,
...@@ -354,4 +362,3 @@ module_platform_driver(tegra20_spdif_driver); ...@@ -354,4 +362,3 @@ module_platform_driver(tegra20_spdif_driver);
MODULE_AUTHOR("Stephen Warren <swarren@nvidia.com>"); MODULE_AUTHOR("Stephen Warren <swarren@nvidia.com>");
MODULE_DESCRIPTION("Tegra20 SPDIF ASoC driver"); MODULE_DESCRIPTION("Tegra20 SPDIF ASoC driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:" DRV_NAME);
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