diff options
author | Xiubo Li <Li.Xiubo@freescale.com> | 2013-12-23 15:25:38 +0800 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2015-06-30 10:13:02 +0100 |
commit | 6b3a8b3310115d434dd3a08448af1a9875b18799 (patch) | |
tree | 37dd16e0bbd7e66b1bd00510403dfd1a2d708d22 | |
parent | d4548d1e8187dd659c23049f0faa8d8cc6b09988 (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.c | 21 |
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; |