Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 342914
b: refs/heads/master
c: f20eca1
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown committed Dec 9, 2012
1 parent dcf2a60 commit 44d538b
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 93ac820df58de3b16e82fc3b9ff7437e66b2977d
refs/heads/master: f20eca1c061ba6a56cb1fee09b0903a1befe149a
2 changes: 2 additions & 0 deletions trunk/Documentation/devicetree/bindings/sound/cs4271.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Optional properties:

- reset-gpio: a GPIO spec to define which pin is connected to the chip's
!RESET pin
- cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag
is enabled.

Examples:

Expand Down
1 change: 1 addition & 0 deletions trunk/include/sound/cs4271.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

struct cs4271_platform_data {
int gpio_nreset; /* GPIO driving Reset pin, if any */
int amutec_eq_bmutec:1; /* flag to enable AMUTEC=BMUTEC */
};

#endif /* __CS4271_H */
21 changes: 18 additions & 3 deletions trunk/sound/soc/codecs/cs4271.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,15 +474,25 @@ static int cs4271_probe(struct snd_soc_codec *codec)
struct cs4271_platform_data *cs4271plat = codec->dev->platform_data;
int ret;
int gpio_nreset = -EINVAL;
int amutec_eq_bmutec = 0;

#ifdef CONFIG_OF
if (of_match_device(cs4271_dt_ids, codec->dev))
if (of_match_device(cs4271_dt_ids, codec->dev)) {
gpio_nreset = of_get_named_gpio(codec->dev->of_node,
"reset-gpio", 0);

if (!of_get_property(codec->dev->of_node,
"cirrus,amutec-eq-bmutec", NULL))
amutec_eq_bmutec = 1;
}
#endif

if (cs4271plat && gpio_is_valid(cs4271plat->gpio_nreset))
gpio_nreset = cs4271plat->gpio_nreset;
if (cs4271plat) {
if (gpio_is_valid(cs4271plat->gpio_nreset))
gpio_nreset = cs4271plat->gpio_nreset;

amutec_eq_bmutec = cs4271plat->amutec_eq_bmutec;
}

if (gpio_nreset >= 0)
if (devm_gpio_request(codec->dev, gpio_nreset, "CS4271 Reset"))
Expand Down Expand Up @@ -528,6 +538,11 @@ static int cs4271_probe(struct snd_soc_codec *codec)
/* Power-up sequence requires 85 uS */
udelay(85);

if (amutec_eq_bmutec)
snd_soc_update_bits(codec, CS4271_MODE2,
CS4271_MODE2_MUTECAEQUB,
CS4271_MODE2_MUTECAEQUB);

return snd_soc_add_codec_controls(codec, cs4271_snd_controls,
ARRAY_SIZE(cs4271_snd_controls));
}
Expand Down

0 comments on commit 44d538b

Please sign in to comment.