Lines Matching refs:aio

21 #include "aio.h"
88 * @aio: the AIO device pointer
96 * in each drivers (see: aio-i2s.c).
101 static const struct uniphier_aio_spec *find_spec(struct uniphier_aio *aio,
105 const struct uniphier_aio_chip_spec *chip_spec = aio->chip->chip_spec;
120 * @aio: the AIO device pointer
128 static int find_divider(struct uniphier_aio *aio, int pll_id, unsigned int freq)
135 if (!is_valid_pll(aio->chip, pll_id))
138 pll = &aio->chip->plls[pll_id];
149 struct uniphier_aio *aio = uniphier_priv(dai);
150 struct device *dev = &aio->chip->pdev->dev;
195 for (pll_id = 0; pll_id < aio->chip->num_plls; pll_id++) {
196 div_id = find_divider(aio, pll_id, freq);
198 aio->plldiv = div_id;
202 if (pll_id == aio->chip->num_plls) {
210 aio->pll_out = pll_id;
212 aio->pll_in = pll_id;
221 struct uniphier_aio *aio = uniphier_priv(dai);
224 if (!is_valid_pll(aio->chip, pll_id))
227 ret = aio_chip_set_pll(aio->chip, pll_id, freq_out);
236 struct uniphier_aio *aio = uniphier_priv(dai);
237 struct device *dev = &aio->chip->pdev->dev;
243 aio->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
257 struct uniphier_aio *aio = uniphier_priv(dai);
258 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
270 struct uniphier_aio *aio = uniphier_priv(dai);
271 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
280 struct uniphier_aio *aio = uniphier_priv(dai);
281 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
282 struct device *dev = &aio->chip->pdev->dev;
318 struct uniphier_aio *aio = uniphier_priv(dai);
319 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
329 struct uniphier_aio *aio = uniphier_priv(dai);
330 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
360 struct uniphier_aio *aio = uniphier_priv(dai);
363 for (i = 0; i < ARRAY_SIZE(aio->sub); i++) {
364 struct uniphier_aio_sub *sub = &aio->sub[i];
367 spec = find_spec(aio, dai->name, i);
377 aio_iecout_set_enable(aio->chip, true);
378 aio_chip_init(aio->chip);
379 aio->chip->active = 1;
386 struct uniphier_aio *aio = uniphier_priv(dai);
388 aio->chip->active = 0;
527 struct uniphier_aio *aio = uniphier_priv(dai);
532 aio->chip->num_wup_aios--;
533 if (!aio->chip->num_wup_aios) {
534 reset_control_assert(aio->chip->rst);
535 clk_disable_unprepare(aio->chip->clk);
550 struct uniphier_aio *aio = uniphier_priv(dai);
556 if (!aio->chip->active)
559 if (!aio->chip->num_wup_aios) {
560 ret = clk_prepare_enable(aio->chip->clk);
564 ret = reset_control_deassert(aio->chip->rst);
569 aio_iecout_set_enable(aio->chip, true);
570 aio_chip_init(aio->chip);
572 for (i = 0; i < ARRAY_SIZE(aio->sub); i++) {
573 struct uniphier_aio_sub *sub = &aio->sub[i];
588 aio->chip->num_wup_aios++;
593 if (!aio->chip->num_wup_aios)
594 reset_control_assert(aio->chip->rst);
596 if (!aio->chip->num_wup_aios)
597 clk_disable_unprepare(aio->chip->clk);
719 .name = "uniphier-aio",
748 chip->clk = devm_clk_get(dev, "aio");
752 chip->rst = devm_reset_control_get_shared(dev, "aio");
775 struct uniphier_aio *aio = &chip->aios[i];
777 aio->chip = chip;
778 aio->fmt = SND_SOC_DAIFMT_I2S;
780 for (j = 0; j < ARRAY_SIZE(aio->sub); j++) {
781 struct uniphier_aio_sub *sub = &aio->sub[j];
783 sub->aio = aio;