Lines Matching +full:cs +full:- +full:to +full:- +full:clk

1 // SPDX-License-Identifier: GPL-2.0
7 #include <linux/clk.h>
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()
73 u8 cs[AIU_CS_WORD_LEN]; in aiu_encoder_spdif_setup_cs_word() local
77 ret = snd_pcm_create_iec958_consumer_hw_params(params, cs, in aiu_encoder_spdif_setup_cs_word()
83 val = cs[1] | cs[0] << 8; 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()
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()
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()