From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> To: Mark Brown <broonie@kernel.org> Cc: Linux-ALSA <alsa-devel@alsa-project.org>, Liam Girdwood <lgirdwood@gmail.com>, Simon <horms@verge.net.au>, <linux-renesas-soc@vger.kernel.org> Subject: [PATCH 09/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_clk() Date: Tue, 31 May 2016 09:02:22 +0000 [thread overview] Message-ID: <8737oysj1d.wl%kuninori.morimoto.gx@renesas.com> (raw) In-Reply-To: <87fusysjam.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Current simple-card can get clock via DT clocks or "system-clock-frequency" property. This patch makes it simple style standard Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- include/sound/simple_card_utils.h | 8 ++++++++ sound/soc/generic/simple-card-utils.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h index 89172aa..b8a8649 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -38,4 +38,12 @@ int asoc_simple_card_parse_card_prefix(struct snd_soc_card *card, struct snd_soc_codec_conf *codec_conf, char *prefix); +#define asoc_simple_card_parse_clk_cpu(port_np, dai_link, simple_dai)\ + asoc_simple_card_parse_clk(port_np, dai_link->cpu_of_node, simple_dai) +#define asoc_simple_card_parse_clk_codec(port_np, dai_link, simple_dai) \ + asoc_simple_card_parse_clk(port_np, dai_link->codec_of_node, simple_dai) +int asoc_simple_card_parse_clk(struct device_node *port_np, + struct device_node *endpoint_np, + struct asoc_simple_dai *simple_dai); + #endif /* __SIMPLE_CARD_CORE_H */ diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 439fc01..dbf4b00 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -7,6 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include <linux/clk.h> #include <linux/of.h> #include <sound/simple_card_utils.h> @@ -142,3 +143,32 @@ int asoc_simple_card_parse_card_prefix(struct snd_soc_card *card, return 0; } EXPORT_SYMBOL_GPL(asoc_simple_card_parse_card_prefix); + +int asoc_simple_card_parse_clk(struct device_node *port_np, + struct device_node *endpoint_np, + struct asoc_simple_dai *simple_dai) +{ + struct clk *clk; + u32 val; + + /* + * Parse 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(port_np, 0); + if (!IS_ERR(clk)) { + simple_dai->sysclk = clk_get_rate(clk); + simple_dai->clk = clk; + } else if (!of_property_read_u32(port_np, "system-clock-frequency", &val)) { + simple_dai->sysclk = val; + } else { + clk = of_clk_get(endpoint_np, 0); + if (!IS_ERR(clk)) + simple_dai->sysclk = clk_get_rate(clk); + } + + return 0; +} +EXPORT_SYMBOL_GPL(asoc_simple_card_parse_clk); -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> To: Mark Brown <broonie@kernel.org> Cc: Linux-ALSA <alsa-devel@alsa-project.org>, Liam Girdwood <lgirdwood@gmail.com>, Simon <horms@verge.net.au>, linux-renesas-soc@vger.kernel.org Subject: [PATCH 09/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_clk() Date: Tue, 31 May 2016 09:02:22 +0000 [thread overview] Message-ID: <8737oysj1d.wl%kuninori.morimoto.gx@renesas.com> (raw) In-Reply-To: <87fusysjam.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Current simple-card can get clock via DT clocks or "system-clock-frequency" property. This patch makes it simple style standard Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- include/sound/simple_card_utils.h | 8 ++++++++ sound/soc/generic/simple-card-utils.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h index 89172aa..b8a8649 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -38,4 +38,12 @@ int asoc_simple_card_parse_card_prefix(struct snd_soc_card *card, struct snd_soc_codec_conf *codec_conf, char *prefix); +#define asoc_simple_card_parse_clk_cpu(port_np, dai_link, simple_dai)\ + asoc_simple_card_parse_clk(port_np, dai_link->cpu_of_node, simple_dai) +#define asoc_simple_card_parse_clk_codec(port_np, dai_link, simple_dai) \ + asoc_simple_card_parse_clk(port_np, dai_link->codec_of_node, simple_dai) +int asoc_simple_card_parse_clk(struct device_node *port_np, + struct device_node *endpoint_np, + struct asoc_simple_dai *simple_dai); + #endif /* __SIMPLE_CARD_CORE_H */ diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 439fc01..dbf4b00 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -7,6 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include <linux/clk.h> #include <linux/of.h> #include <sound/simple_card_utils.h> @@ -142,3 +143,32 @@ int asoc_simple_card_parse_card_prefix(struct snd_soc_card *card, return 0; } EXPORT_SYMBOL_GPL(asoc_simple_card_parse_card_prefix); + +int asoc_simple_card_parse_clk(struct device_node *port_np, + struct device_node *endpoint_np, + struct asoc_simple_dai *simple_dai) +{ + struct clk *clk; + u32 val; + + /* + * Parse 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(port_np, 0); + if (!IS_ERR(clk)) { + simple_dai->sysclk = clk_get_rate(clk); + simple_dai->clk = clk; + } else if (!of_property_read_u32(port_np, "system-clock-frequency", &val)) { + simple_dai->sysclk = val; + } else { + clk = of_clk_get(endpoint_np, 0); + if (!IS_ERR(clk)) + simple_dai->sysclk = clk_get_rate(clk); + } + + return 0; +} +EXPORT_SYMBOL_GPL(asoc_simple_card_parse_clk); -- 1.9.1
next prev parent reply other threads:[~2016-05-31 9:02 UTC|newest] Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-05-31 8:56 [PATCH 00/39 v2] ASoC: add simple-card-core and standardize "simple" card Kuninori Morimoto 2016-05-31 8:56 ` Kuninori Morimoto 2016-05-31 8:58 ` [PATCH 01/39 v2] ASoC: rsrc-card: remove unused dai_num Kuninori Morimoto 2016-05-31 8:58 ` Kuninori Morimoto 2016-05-31 8:59 ` [PATCH 02/39 v2] ASoC: simple-card: use common PREFIX for each DT property Kuninori Morimoto 2016-05-31 8:59 ` Kuninori Morimoto 2016-06-13 15:47 ` Applied "ASoC: simple-card: use common PREFIX for each DT property" to the asoc tree Mark Brown 2016-06-13 15:47 ` Mark Brown 2016-05-31 8:59 ` [PATCH 03/39 v2] ASoC: simple-card: add new asoc_simple_jack and use it Kuninori Morimoto 2016-05-31 8:59 ` Kuninori Morimoto 2016-06-29 18:20 ` Applied "ASoC: simple-card: add new asoc_simple_jack and use it" to the asoc tree Mark Brown 2016-06-29 18:20 ` Mark Brown 2016-05-31 9:00 ` [PATCH 04/39 v2] ASoC: add new simple-card-utils.c Kuninori Morimoto 2016-05-31 9:00 ` Kuninori Morimoto 2016-06-29 18:20 ` Applied "ASoC: add new simple-card-utils.c" to the asoc tree Mark Brown 2016-06-29 18:20 ` Mark Brown 2016-05-31 9:00 ` [PATCH 05/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_tdm() Kuninori Morimoto 2016-05-31 9:00 ` Kuninori Morimoto 2016-06-29 18:11 ` Mark Brown 2016-06-30 0:03 ` Kuninori Morimoto 2016-06-30 0:03 ` Kuninori Morimoto 2016-05-31 9:01 ` [PATCH 06/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_dailink_name() Kuninori Morimoto 2016-05-31 9:01 ` Kuninori Morimoto 2016-06-29 18:14 ` Mark Brown 2016-06-30 5:32 ` Kuninori Morimoto 2016-06-30 5:32 ` Kuninori Morimoto 2016-05-31 9:01 ` [PATCH 07/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_card_name() Kuninori Morimoto 2016-05-31 9:01 ` Kuninori Morimoto 2016-06-29 18:15 ` Mark Brown 2016-06-29 18:15 ` Mark Brown 2016-06-30 2:55 ` Kuninori Morimoto 2016-06-30 2:55 ` Kuninori Morimoto 2016-07-01 9:52 ` Mark Brown 2016-07-03 23:54 ` Kuninori Morimoto 2016-07-03 23:54 ` Kuninori Morimoto 2016-07-04 0:20 ` Kuninori Morimoto 2016-07-04 0:20 ` Kuninori Morimoto 2016-07-04 8:50 ` Mark Brown 2016-07-04 8:59 ` Kuninori Morimoto 2016-07-04 8:59 ` Kuninori Morimoto 2016-07-05 12:10 ` Mark Brown 2016-07-05 12:10 ` Mark Brown 2016-07-05 23:12 ` Kuninori Morimoto 2016-07-05 23:12 ` Kuninori Morimoto 2016-05-31 9:01 ` [PATCH 08/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_card_prefix() Kuninori Morimoto 2016-05-31 9:01 ` Kuninori Morimoto 2016-06-29 18:17 ` Mark Brown 2016-05-31 9:02 ` Kuninori Morimoto [this message] 2016-05-31 9:02 ` [PATCH 09/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_clk() Kuninori Morimoto 2016-06-29 18:18 ` Mark Brown 2016-06-30 0:25 ` Kuninori Morimoto 2016-06-30 0:25 ` Kuninori Morimoto 2016-06-30 0:39 ` Kuninori Morimoto 2016-06-30 0:39 ` Kuninori Morimoto 2016-07-01 9:55 ` Mark Brown 2016-07-01 9:55 ` Mark Brown 2016-07-03 23:58 ` Kuninori Morimoto 2016-07-03 23:58 ` Kuninori Morimoto 2016-05-31 9:03 ` [PATCH 10/39 v2] ASoC: simple-card-utils: add asoc_simple_card_parse_endpoint() Kuninori Morimoto 2016-05-31 9:03 ` Kuninori Morimoto 2016-06-29 18:34 ` Mark Brown 2016-05-31 9:03 ` [PATCH 11/39 v2] ASoC: simple-card-utils: add asoc_simple_card_init_dai() Kuninori Morimoto 2016-05-31 9:03 ` Kuninori Morimoto 2016-05-31 9:03 ` [PATCH 12/39 v2] ASoC: simple-card-utils: add asoc_simple_card_canonicalize_dailink() Kuninori Morimoto 2016-05-31 9:03 ` Kuninori Morimoto 2016-05-31 9:04 ` [PATCH 13/39 v2] ASoC: simple-card-utils: add asoc_simple_card_canonicalize_cpu() Kuninori Morimoto 2016-05-31 9:04 ` Kuninori Morimoto 2016-05-31 9:04 ` [PATCH 14/39 v2] ASoC: simple-card-utils: add asoc_simple_card_clean_reference() Kuninori Morimoto 2016-05-31 9:04 ` Kuninori Morimoto 2016-05-31 9:05 ` [PATCH 15/39 v2] ASoC: simple-card: use asoc_simple_card_parse_daifmt() Kuninori Morimoto 2016-05-31 9:05 ` Kuninori Morimoto 2016-05-31 9:05 ` [PATCH 16/39 v2] ASoC: simple-card: use asoc_simple_card_parse_clk() Kuninori Morimoto 2016-05-31 9:05 ` Kuninori Morimoto 2016-05-31 9:05 ` [PATCH 17/39 v2] ASoC: simple-card: use asoc_simple_card_parse_endpoint() Kuninori Morimoto 2016-05-31 9:05 ` Kuninori Morimoto 2016-05-31 9:06 ` [PATCH 18/39 v2] ASoC: simple-card: use asoc_simple_card_parse_tdm() Kuninori Morimoto 2016-05-31 9:06 ` Kuninori Morimoto 2016-05-31 9:06 ` [PATCH 19/39 v2] ASoC: simple-card: use asoc_simple_card_parse_card_name() Kuninori Morimoto 2016-05-31 9:06 ` Kuninori Morimoto 2016-07-16 12:03 ` Applied "ASoC: simple-card: use asoc_simple_card_parse_card_name()" to the asoc tree Mark Brown 2016-07-16 12:03 ` Mark Brown 2016-05-31 9:07 ` [PATCH 20/39 v2] ASoC: simple-card: use asoc_simple_card_parse_dailink_name() Kuninori Morimoto 2016-05-31 9:07 ` Kuninori Morimoto 2016-05-31 9:07 ` [PATCH 21/39 v2] ASoC: simple-card: use asoc_simple_card_init_dai() Kuninori Morimoto 2016-05-31 9:07 ` Kuninori Morimoto 2016-05-31 9:07 ` [PATCH 22/39 v2] ASoC: simple-card: use asoc_simple_card_canonicalize_dailink() Kuninori Morimoto 2016-05-31 9:07 ` Kuninori Morimoto 2016-05-31 9:08 ` [PATCH 23/39 v2] ASoC: simple-card: use asoc_simple_card_canonicalize_cpu() Kuninori Morimoto 2016-05-31 9:08 ` Kuninori Morimoto 2016-05-31 9:08 ` [PATCH 24/39 v2] ASoC: simple-card: use asoc_simple_card_clean_reference() Kuninori Morimoto 2016-05-31 9:08 ` Kuninori Morimoto 2016-05-31 9:09 ` [PATCH 25/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_daifmt() Kuninori Morimoto 2016-05-31 9:09 ` Kuninori Morimoto 2016-07-01 15:59 ` Applied "ASoC: rsrc-card: use asoc_simple_card_parse_daifmt()" to the asoc tree Mark Brown 2016-07-01 15:59 ` Mark Brown 2016-05-31 9:09 ` [PATCH 26/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_dailink_name() Kuninori Morimoto 2016-05-31 9:09 ` Kuninori Morimoto 2016-05-31 9:09 ` [PATCH 27/39 v2] ASoC: rsrc-card: use asoc_simple_dai instead of rsrc_card_dai Kuninori Morimoto 2016-05-31 9:09 ` Kuninori Morimoto 2016-05-31 9:10 ` [PATCH 28/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_clk() Kuninori Morimoto 2016-05-31 9:10 ` Kuninori Morimoto 2016-05-31 9:10 ` [PATCH 29/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_endpoint() Kuninori Morimoto 2016-05-31 9:10 ` Kuninori Morimoto 2016-05-31 9:11 ` [PATCH 30/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_card_name() Kuninori Morimoto 2016-05-31 9:11 ` Kuninori Morimoto 2016-05-31 9:11 ` [PATCH 31/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_card_prefix() Kuninori Morimoto 2016-05-31 9:11 ` Kuninori Morimoto 2016-05-31 9:11 ` [PATCH 32/39 v2] ASoC: rsrc-card: use asoc_simple_card_parse_tdm() Kuninori Morimoto 2016-05-31 9:11 ` Kuninori Morimoto 2016-05-31 9:12 ` [PATCH 33/39 v2] ASoC: rsrc-card: use asoc_simple_card_init_dai() Kuninori Morimoto 2016-05-31 9:12 ` Kuninori Morimoto 2016-05-31 9:12 ` [PATCH 34/39 v2] ASoC: rsrc-card: use asoc_simple_card_canonicalize_cpu() Kuninori Morimoto 2016-05-31 9:12 ` Kuninori Morimoto 2016-05-31 9:13 ` [PATCH 35/39 v2] ASoC: rsrc-card: use asoc_simple_card_canonicalize_dailink() Kuninori Morimoto 2016-05-31 9:13 ` Kuninori Morimoto 2016-05-31 9:13 ` [PATCH 36/39 v2] ASoC: rsrc-card: use asoc_simple_card_clean_reference() Kuninori Morimoto 2016-05-31 9:13 ` Kuninori Morimoto 2016-05-31 9:13 ` [PATCH 37/39 v2] ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase1 Kuninori Morimoto 2016-05-31 9:13 ` Kuninori Morimoto 2016-05-31 9:14 ` [PATCH 38/39 v2] ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase2 Kuninori Morimoto 2016-05-31 9:14 ` Kuninori Morimoto 2016-05-31 9:14 ` [PATCH 39/39 v2] ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase3 Kuninori Morimoto 2016-05-31 9:14 ` Kuninori Morimoto 2016-06-20 1:49 ` [PATCH 00/39 v2] ASoC: add simple-card-core and standardize "simple" card Kuninori Morimoto 2016-06-20 1:49 ` Kuninori Morimoto 2016-06-29 18:16 ` Mark Brown 2016-06-30 5:34 ` Kuninori Morimoto 2016-06-30 5:34 ` Kuninori Morimoto
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8737oysj1d.wl%kuninori.morimoto.gx@renesas.com \ --to=kuninori.morimoto.gx@renesas.com \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=horms@verge.net.au \ --cc=lgirdwood@gmail.com \ --cc=linux-renesas-soc@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.