[PATCH v2 11/12] ASoC: tegra: register dependency parser for firmware nodes

From: Tomeu Vizoso
Date: Wed Jul 01 2015 - 05:45:33 EST


So others can find out what dependencies a nvidia,tegra-audio-max98090
device has, as specified in
bindings/sound/nvidia,tegra-audio-max98090.txt.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
---

Changes in v2: None

sound/soc/tegra/tegra_max98090.c | 42 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/sound/soc/tegra/tegra_max98090.c b/sound/soc/tegra/tegra_max98090.c
index 902da36..0f7cbf3 100644
--- a/sound/soc/tegra/tegra_max98090.c
+++ b/sound/soc/tegra/tegra_max98090.c
@@ -316,7 +316,47 @@ static struct platform_driver tegra_max98090_driver = {
.probe = tegra_max98090_probe,
.remove = tegra_max98090_remove,
};
-module_platform_driver(tegra_max98090_driver);
+
+static void add_dependency(struct fwnode_handle *fwnode,
+ const char *property,
+ struct list_head *deps)
+{
+ struct device_node *np;
+
+ np = of_parse_phandle(to_of_node(fwnode), property, 0);
+ if (!np)
+ return;
+
+ fwnode_add_dependency(&np->fwnode, deps);
+}
+
+static void tegra_max98090_get_dependencies(struct fwnode_handle *fwnode,
+ struct list_head *deps)
+{
+ add_dependency(fwnode, "nvidia,i2s-controller", deps);
+ add_dependency(fwnode, "nvidia,audio-codec", deps);
+}
+
+static int __init tegra_max98090_init(void)
+{
+ int err;
+
+ err = platform_driver_register(&tegra_max98090_driver);
+ if (err < 0)
+ return err;
+
+ fwnode_add_dependency_parser(tegra_max98090_get_dependencies);
+
+ return 0;
+}
+module_init(tegra_max98090_init);
+
+static void __exit tegra_max98090_exit(void)
+{
+ fwnode_remove_dependency_parser(tegra_max98090_get_dependencies);
+ platform_driver_unregister(&tegra_max98090_driver);
+}
+module_exit(tegra_max98090_exit);

MODULE_AUTHOR("Stephen Warren <swarren@xxxxxxxxxx>");
MODULE_DESCRIPTION("Tegra max98090 machine ASoC driver");
--
2.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/