staticint mt8365_mt6357_int_adda_startup(struct snd_pcm_substream *substream)
{ struct snd_soc_pcm_runtime *rtd = substream->private_data; struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(rtd->card); int ret = 0;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { if (IS_ERR(priv->pin_states[PIN_STATE_MOSI_ON])) return ret;
ret = pinctrl_select_state(priv->pinctrl,
priv->pin_states[PIN_STATE_MOSI_ON]); if (ret)
dev_err(rtd->card->dev, "%s failed to select state %d\n",
__func__, ret);
}
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { if (IS_ERR(priv->pin_states[PIN_STATE_MISO_ON])) return ret;
ret = pinctrl_select_state(priv->pinctrl,
priv->pin_states[PIN_STATE_MISO_ON]); if (ret)
dev_err(rtd->card->dev, "%s failed to select state %d\n",
__func__, ret);
}
return 0;
}
staticvoid mt8365_mt6357_int_adda_shutdown(struct snd_pcm_substream *substream)
{ struct snd_soc_pcm_runtime *rtd = substream->private_data; struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(rtd->card); int ret = 0;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { if (IS_ERR(priv->pin_states[PIN_STATE_MOSI_OFF])) return;
ret = pinctrl_select_state(priv->pinctrl,
priv->pin_states[PIN_STATE_MOSI_OFF]); if (ret)
dev_err(rtd->card->dev, "%s failed to select state %d\n",
__func__, ret);
}
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { if (IS_ERR(priv->pin_states[PIN_STATE_MISO_OFF])) return;
ret = pinctrl_select_state(priv->pinctrl,
priv->pin_states[PIN_STATE_MISO_OFF]); if (ret)
dev_err(rtd->card->dev, "%s failed to select state %d\n",
__func__, ret);
}
}
priv->pinctrl = devm_pinctrl_get(card->dev); if (IS_ERR(priv->pinctrl)) {
ret = PTR_ERR(priv->pinctrl); return dev_err_probe(card->dev, ret, "Failed to get pinctrl\n");
}
for (i = PIN_STATE_DEFAULT ; i < PIN_STATE_MAX ; i++) {
priv->pin_states[i] = pinctrl_lookup_state(priv->pinctrl,
mt8365_mt6357_pin_str[i]); if (IS_ERR(priv->pin_states[i])) {
dev_info(card->dev, "No pin state for %s\n",
mt8365_mt6357_pin_str[i]);
} else {
ret = pinctrl_select_state(priv->pinctrl,
priv->pin_states[i]); if (ret) {
dev_err_probe(card->dev, ret, "Failed to select pin state %s\n",
mt8365_mt6357_pin_str[i]); return ret;
}
}
} return 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.