Skip to content

Commit

Permalink
ASoC: simple-card: support platform in dts parse
Browse files Browse the repository at this point in the history
Support platform in dts parse so that dma pcm component
can be added in dts.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Jun Nie authored and Mark Brown committed May 4, 2015
1 parent b787f68 commit e0ae225
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions sound/soc/generic/simple-card.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, idx);
struct simple_dai_props *dai_props = simple_priv_to_props(priv, idx);
struct device_node *cpu = NULL;
struct device_node *plat = NULL;
struct device_node *codec = NULL;
char *name;
char prop[128];
Expand All @@ -320,6 +321,9 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
snprintf(prop, sizeof(prop), "%scpu", prefix);
cpu = of_get_child_by_name(node, prop);

snprintf(prop, sizeof(prop), "%splat", prefix);
plat = of_get_child_by_name(node, prop);

snprintf(prop, sizeof(prop), "%scodec", prefix);
codec = of_get_child_by_name(node, prop);

Expand Down Expand Up @@ -352,8 +356,16 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
goto dai_link_of_err;
}

/* Simple Card assumes platform == cpu */
dai_link->platform_of_node = dai_link->cpu_of_node;
if (plat) {
struct of_phandle_args args;

ret = of_parse_phandle_with_args(plat, "sound-dai",
"#sound-dai-cells", 0, &args);
dai_link->platform_of_node = args.np;
} else {
/* Assumes platform == cpu */
dai_link->platform_of_node = dai_link->cpu_of_node;
}

/* DAI link name is created from CPU/CODEC dai name */
name = devm_kzalloc(dev,
Expand Down

0 comments on commit e0ae225

Please sign in to comment.