Loading Documentation/devicetree/bindings/sound/cs4271.txt +2 −0 Original line number Diff line number Diff line Loading @@ -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: Loading include/sound/cs4271.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 */ sound/soc/codecs/cs4271.c +18 −3 Original line number Diff line number Diff line Loading @@ -474,16 +474,26 @@ 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)) 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")) gpio_nreset = -EINVAL; Loading Loading @@ -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)); } Loading Loading
Documentation/devicetree/bindings/sound/cs4271.txt +2 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
include/sound/cs4271.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 */
sound/soc/codecs/cs4271.c +18 −3 Original line number Diff line number Diff line Loading @@ -474,16 +474,26 @@ 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)) 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")) gpio_nreset = -EINVAL; Loading Loading @@ -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)); } Loading