Lines Matching +full:io +full:- +full:channel
1 // SPDX-License-Identifier: GPL-2.0
24 * 0001: Connect input data of channel 0
25 * 0010: Connect input data of channel 1
26 * 0011: Connect input data of channel 2
27 * 0100: Connect input data of channel 3
28 * 0101: Connect input data of channel 4
29 * 0110: Connect input data of channel 5
30 * 0111: Connect input data of channel 6
31 * 1000: Connect input data of channel 7
50 * -----------------------------------------------------------------------
55 * H'00_0001 2.38 x 10^-7 -132
56 * H'00_0000 0 Mute H'FF_FFFF 2.38 x 10^-7 -132
59 * Ex) Input ch -> Output ch
60 * 1ch -> 0ch
61 * 0ch -> 1ch
83 #define rsnd_ctu_nr(priv) ((priv)->ctu_nr)
87 ((pos) = (struct rsnd_ctu *)(priv)->ctu + i); \
93 #define rsnd_ctu_get(priv, id) ((struct rsnd_ctu *)(priv->ctu) + id)
108 struct rsnd_dai_stream *io, in rsnd_ctu_probe_() argument
111 return rsnd_cmd_attach(io, rsnd_mod_id(mod)); in rsnd_ctu_probe_()
114 static void rsnd_ctu_value_init(struct rsnd_dai_stream *io, in rsnd_ctu_value_init() argument
123 u32 val = rsnd_kctrl_valm(ctu->pass, i); in rsnd_ctu_value_init()
125 cpmdr |= val << (28 - (i * 4)); in rsnd_ctu_value_init()
127 if ((val > 0x8) && (scmdr < (val - 0x8))) in rsnd_ctu_value_init()
128 scmdr = val - 0x8; in rsnd_ctu_value_init()
133 rsnd_mod_write(mod, CTU_ADINR, rsnd_runtime_channel_original(io)); in rsnd_ctu_value_init()
145 rsnd_mod_write(mod, CTU_SVxxR(i, j), rsnd_kctrl_valm(ctu->sv[i], j)); in rsnd_ctu_value_init()
151 static void rsnd_ctu_value_reset(struct rsnd_dai_stream *io, in rsnd_ctu_value_reset() argument
157 if (!rsnd_kctrl_vals(ctu->reset)) in rsnd_ctu_value_reset()
161 rsnd_kctrl_valm(ctu->pass, i) = 0; in rsnd_ctu_value_reset()
162 rsnd_kctrl_valm(ctu->sv[0], i) = 0; in rsnd_ctu_value_reset()
163 rsnd_kctrl_valm(ctu->sv[1], i) = 0; in rsnd_ctu_value_reset()
164 rsnd_kctrl_valm(ctu->sv[2], i) = 0; in rsnd_ctu_value_reset()
165 rsnd_kctrl_valm(ctu->sv[3], i) = 0; in rsnd_ctu_value_reset()
167 rsnd_kctrl_vals(ctu->reset) = 0; in rsnd_ctu_value_reset()
171 struct rsnd_dai_stream *io, in rsnd_ctu_init() argument
178 rsnd_ctu_value_init(io, mod); in rsnd_ctu_init()
184 struct rsnd_dai_stream *io, in rsnd_ctu_quit() argument
195 struct rsnd_dai_stream *io, in rsnd_ctu_pcm_new() argument
205 ret = rsnd_kctrl_new_m(mod, io, rtd, "CTU Pass", in rsnd_ctu_pcm_new()
208 &ctu->pass, RSND_MAX_CHANNELS, in rsnd_ctu_pcm_new()
214 ret = rsnd_kctrl_new_m(mod, io, rtd, "CTU SV0", in rsnd_ctu_pcm_new()
217 &ctu->sv[0], RSND_MAX_CHANNELS, in rsnd_ctu_pcm_new()
223 ret = rsnd_kctrl_new_m(mod, io, rtd, "CTU SV1", in rsnd_ctu_pcm_new()
226 &ctu->sv[1], RSND_MAX_CHANNELS, in rsnd_ctu_pcm_new()
232 ret = rsnd_kctrl_new_m(mod, io, rtd, "CTU SV2", in rsnd_ctu_pcm_new()
235 &ctu->sv[2], RSND_MAX_CHANNELS, in rsnd_ctu_pcm_new()
241 ret = rsnd_kctrl_new_m(mod, io, rtd, "CTU SV3", in rsnd_ctu_pcm_new()
244 &ctu->sv[3], RSND_MAX_CHANNELS, in rsnd_ctu_pcm_new()
250 ret = rsnd_kctrl_new_s(mod, io, rtd, "CTU Reset", in rsnd_ctu_pcm_new()
253 &ctu->reset, 1); in rsnd_ctu_pcm_new()
263 * ctu00: -> 0, ctu01: -> 0, ctu02: -> 0, ctu03: -> 0 in rsnd_ctu_id()
264 * ctu10: -> 1, ctu11: -> 1, ctu12: -> 1, ctu13: -> 1 in rsnd_ctu_id()
266 return mod->id / 4; in rsnd_ctu_id()
272 * ctu00: -> 0, ctu01: -> 1, ctu02: -> 2, ctu03: -> 3 in rsnd_ctu_id_sub()
273 * ctu10: -> 0, ctu11: -> 1, ctu12: -> 2, ctu13: -> 3 in rsnd_ctu_id_sub()
275 return mod->id % 4; in rsnd_ctu_id_sub()
280 struct rsnd_dai_stream *io, in rsnd_ctu_debug_info() argument
332 ret = -EINVAL; in rsnd_ctu_probe()
338 ret = -ENOMEM; in rsnd_ctu_probe()
342 priv->ctu_nr = nr; in rsnd_ctu_probe()
343 priv->ctu = ctu; in rsnd_ctu_probe()