Lines Matching +full:spdif +full:- +full:2

1 // SPDX-License-Identifier: GPL-2.0
11 #include <sound/soc-dai.h>
27 #define AIU_958_INTERNAL_DIV 2
50 struct snd_soc_component *component = dai->component; in aiu_encoder_spdif_trigger()
66 return -EINVAL; in aiu_encoder_spdif_trigger()
87 /* Write the 2nd half word */ in aiu_encoder_spdif_setup_cs_word()
88 val = cs[3] | cs[2] << 8; in aiu_encoder_spdif_setup_cs_word()
99 struct snd_soc_component *component = dai->component; in aiu_encoder_spdif_hw_params()
110 val |= FIELD_PREP(AIU_958_MISC_16BITS_ALIGN, 2); 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()
142 /* 2 * 32bits per subframe * 2 channels = 128 */ 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()
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()