aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiubo Li <Li.Xiubo@freescale.com>2013-12-23 15:25:38 +0800
committerJon Medhurst <tixy@linaro.org>2015-06-30 10:13:02 +0100
commit6b3a8b3310115d434dd3a08448af1a9875b18799 (patch)
tree37dd16e0bbd7e66b1bd00510403dfd1a2d708d22
parentd4548d1e8187dd659c23049f0faa8d8cc6b09988 (diff)
ASoC: simple-card: Add device's module clock selection.
Try to get the device's module clock if the dt has no clocks and system-clock-frequency properties. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 71467e46414d3bab220de77d3d085be0c0aa03e1) Signed-off-by: Jon Medhurst <tixy@linaro.org>
-rw-r--r--sound/soc/generic/simple-card.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 6ce9745bf847..c0d928138c88 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -90,14 +90,29 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
* dai->sysclk come from
* "clocks = <&xxx>" (if system has common clock)
* or "system-clock-frequency = <xxx>"
+ * or device's module clock.
*/
- clk = of_clk_get(np, 0);
- if (IS_ERR(clk))
+ if (of_property_read_bool(np, "clocks")) {
+ clk = of_clk_get(np, 0);
+ if (IS_ERR(clk)) {
+ ret = PTR_ERR(clk);
+ goto parse_error;
+ }
+
+ dai->sysclk = clk_get_rate(clk);
+ } else if (of_property_read_bool(np, "system-clock-frequency")) {
of_property_read_u32(np,
"system-clock-frequency",
&dai->sysclk);
- else
+ } else {
+ clk = of_clk_get(*node, 0);
+ if (IS_ERR(clk)) {
+ ret = PTR_ERR(clk);
+ goto parse_error;
+ }
+
dai->sysclk = clk_get_rate(clk);
+ }
ret = 0;