simple_amp
gpiod_set_value_cansleep(simple_amp->gpiod_enable, val);
struct simple_amp *simple_amp = snd_soc_component_get_drvdata(component);
ret = snd_soc_dapm_new_controls(dapm, simple_amp->data->dapm_widgets,
simple_amp->data->num_dapm_widgets);
ret = snd_soc_dapm_add_routes(dapm, simple_amp->data->dapm_routes,
simple_amp->data->num_dapm_routes);
struct simple_amp *simple_amp = snd_soc_component_get_drvdata(component);
if (!(simple_amp->data->supports & SIMPLE_AUDIO_SUPPORT_PGA)) {
struct simple_amp *simple_amp = snd_soc_component_get_drvdata(component);
if (simple_amp->data->supports & SIMPLE_AUDIO_SUPPORT_POWER_SUPPLIES) {
if (simple_amp->mute.gpio) {
simple_amp->mute.is_inverted = true;
simple_amp->mute.kctrl_val = 1; /* Un-muted */
ret = simple_amp_single_add_kcontrol(component, &simple_amp->mute);
if (simple_amp->bypass.gpio) {
ret = simple_amp_single_add_kcontrol(component, &simple_amp->bypass);
if (simple_amp->gain.gpios) {
ret = simple_amp_multi_add_kcontrol(component, &simple_amp->gain);
struct simple_amp *simple_amp = snd_soc_component_get_drvdata(component);
kfree(simple_amp->gain.tlv_array);
simple_amp->gain.tlv_array = NULL;
struct simple_amp *simple_amp;
simple_amp = devm_kzalloc(dev, sizeof(*simple_amp), GFP_KERNEL);
if (!simple_amp)
platform_set_drvdata(pdev, simple_amp);
simple_amp->data = of_device_get_match_data(dev);
if (!simple_amp->data)
simple_amp->gpiod_enable = devm_gpiod_get_optional(dev, "enable",
if (IS_ERR(simple_amp->gpiod_enable))
return dev_err_probe(dev, PTR_ERR(simple_amp->gpiod_enable),
if (simple_amp->data->supports & SIMPLE_AUDIO_SUPPORT_MUTE) {
ret = simple_amp_parse_single_gpio(dev, &simple_amp->mute, "mute");
if (simple_amp->data->supports & SIMPLE_AUDIO_SUPPORT_BYPASS) {
ret = simple_amp_parse_single_gpio(dev, &simple_amp->bypass, "bypass");
if (simple_amp->data->supports & SIMPLE_AUDIO_SUPPORT_PGA) {
ret = simple_amp_parse_multi_gpio(dev, &simple_amp->gain, "gain",
simple_amp->gain.control_name = "Volume";
simple_amp->mute.control_name = "Switch";
simple_amp->bypass.control_name = "Bypass Switch";
if (simple_amp->gain.mode == SIMPLE_AMP_MODE_LABELS) {
simple_amp->mute.control_name = "Out Switch";
struct simple_amp *simple_amp = snd_soc_component_get_drvdata(c);