Lines Matching refs:bd
47 static int bd28623_power_on(struct bd28623_priv *bd)
51 ret = regulator_bulk_enable(ARRAY_SIZE(bd->supplies), bd->supplies);
53 dev_err(bd->dev, "Failed to enable supplies: %d\n", ret);
57 gpiod_set_value_cansleep(bd->reset_gpio, 0);
63 static void bd28623_power_off(struct bd28623_priv *bd)
65 gpiod_set_value_cansleep(bd->reset_gpio, 1);
67 regulator_bulk_disable(ARRAY_SIZE(bd->supplies), bd->supplies);
75 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
77 ucontrol->value.integer.value[0] = bd->switch_spk;
87 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
89 if (bd->switch_spk == ucontrol->value.integer.value[0])
92 bd->switch_spk = ucontrol->value.integer.value[0];
94 gpiod_set_value_cansleep(bd->mute_gpio, bd->switch_spk ? 0 : 1);
106 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
109 bd->switch_spk = 1;
111 ret = bd28623_power_on(bd);
115 gpiod_set_value_cansleep(bd->mute_gpio, bd->switch_spk ? 0 : 1);
122 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
124 bd28623_power_off(bd);
129 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
131 bd28623_power_off(bd);
138 struct bd28623_priv *bd = snd_soc_component_get_drvdata(component);
141 ret = bd28623_power_on(bd);
145 gpiod_set_value_cansleep(bd->mute_gpio, bd->switch_spk ? 0 : 1);
184 struct bd28623_priv *bd;
188 bd = devm_kzalloc(&pdev->dev, sizeof(struct bd28623_priv), GFP_KERNEL);
189 if (!bd)
192 for (i = 0; i < ARRAY_SIZE(bd->supplies); i++)
193 bd->supplies[i].supply = bd28623_supply_names[i];
195 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(bd->supplies),
196 bd->supplies);
202 bd->reset_gpio = devm_gpiod_get_optional(dev, "reset",
204 if (IS_ERR(bd->reset_gpio)) {
206 PTR_ERR(bd->reset_gpio));
207 return PTR_ERR(bd->reset_gpio);
210 bd->mute_gpio = devm_gpiod_get_optional(dev, "mute",
212 if (IS_ERR(bd->mute_gpio)) {
214 PTR_ERR(bd->mute_gpio));
215 return PTR_ERR(bd->mute_gpio);
218 platform_set_drvdata(pdev, bd);
219 bd->dev = dev;