Lines Matching +full:spdif +full:- +full:in

1 // SPDX-License-Identifier: GPL-2.0
11 #include <sound/soc-dai.h>
50 struct snd_soc_component *component = dai->component; in aiu_encoder_spdif_trigger()
66 return -EINVAL; in aiu_encoder_spdif_trigger()
99 struct snd_soc_component *component = dai->component; in aiu_encoder_spdif_hw_params()
116 dev_err(dai->dev, "Unsupported physical width\n"); in aiu_encoder_spdif_hw_params()
117 return -EINVAL; in aiu_encoder_spdif_hw_params()
132 dev_err(dai->dev, "failed to set channel status word\n"); in aiu_encoder_spdif_hw_params()
144 ret = clk_set_rate(aiu->spdif.clks[MCLK].clk, mrate); in aiu_encoder_spdif_hw_params()
146 dev_err(dai->dev, "failed to set mclk rate\n"); in aiu_encoder_spdif_hw_params()
158 struct snd_soc_component *component = dai->component; in aiu_encoder_spdif_hw_free()
168 struct aiu *aiu = snd_soc_component_get_drvdata(dai->component); in aiu_encoder_spdif_startup()
172 * NOTE: Make sure the spdif block is on its own divider. in aiu_encoder_spdif_startup()
174 * The spdif can be clocked by the i2s master clock or its own in aiu_encoder_spdif_startup()
175 * clock. We should (in theory) change the source depending on the in aiu_encoder_spdif_startup()
180 * playing from the same FIFO. The clock should be in sync so, it in aiu_encoder_spdif_startup()
181 * should not be necessary to reparent the spdif master clock. in aiu_encoder_spdif_startup()
183 ret = clk_set_parent(aiu->spdif.clks[MCLK].clk, in aiu_encoder_spdif_startup()
184 aiu->spdif_mclk); in aiu_encoder_spdif_startup()
188 ret = clk_bulk_prepare_enable(aiu->spdif.clk_num, aiu->spdif.clks); in aiu_encoder_spdif_startup()
190 dev_err(dai->dev, "failed to enable spdif clocks\n"); in aiu_encoder_spdif_startup()
198 struct aiu *aiu = snd_soc_component_get_drvdata(dai->component); in aiu_encoder_spdif_shutdown()
200 clk_bulk_disable_unprepare(aiu->spdif.clk_num, aiu->spdif.clks); in aiu_encoder_spdif_shutdown()