Lines Matching +full:sub +full:- +full:blocks
1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Copyright (c) 2016-2018 Socionext Inc.
15 #include <sound/soc-dai.h>
43 /* IEC61937 Repetition period of data-burst in IEC60958 frames */
52 /* IEC61937 Repetition period of Pause data-burst in IEC60958 frames */
70 #define AUD_NAME_PCMIN1 "aio-pcmin1"
71 #define AUD_NAME_PCMIN2 "aio-pcmin2"
72 #define AUD_NAME_PCMIN3 "aio-pcmin3"
73 #define AUD_NAME_IECIN1 "aio-iecin1"
74 #define AUD_NAME_DIECIN1 "aio-diecin1"
88 #define AUD_NAME_HPCMOUT1 "aio-hpcmout1"
89 #define AUD_NAME_PCMOUT1 "aio-pcmout1"
90 #define AUD_NAME_PCMOUT2 "aio-pcmout2"
91 #define AUD_NAME_PCMOUT3 "aio-pcmout3"
92 #define AUD_NAME_EPCMOUT1 "aio-epcmout1"
93 #define AUD_NAME_EPCMOUT2 "aio-epcmout2"
94 #define AUD_NAME_EPCMOUT3 "aio-epcmout3"
95 #define AUD_NAME_EPCMOUT6 "aio-epcmout6"
96 #define AUD_NAME_HIECOUT1 "aio-hiecout1"
97 #define AUD_NAME_IECOUT1 "aio-iecout1"
98 #define AUD_NAME_CMASTER "aio-cmaster"
99 #define AUD_NAME_HIECCOMPOUT1 "aio-hieccompout1"
100 #define AUD_NAME_IECCOMPOUT1 "aio-ieccompout1"
102 #define AUD_GNAME_HDMI "aio-hdmi"
103 #define AUD_GNAME_LINE "aio-line"
104 #define AUD_GNAME_AUX "aio-aux"
105 #define AUD_GNAME_IEC "aio-iec"
165 * Each hardware blocks have own virtual register maps as following:
168 * ------- --------- ---------------
169 * 0x12000 DMAC map0 --> [selector] --> DMAC hardware 3
170 * 0x12080 DMAC map1 --> [selector] --> DMAC hardware 1
172 * 0x42000 Port map0 --> [selector] --> Port hardware 1
173 * 0x42400 Port map1 --> [selector] --> Port hardware 2
187 * (outer of AIO) -> iport -> iif -> ch -> rb -> (CPU)
189 * (CPU) -> rb -> ch -> oif -> oport -> (outer of AIO)
191 * (CPU) -> rb -> ch -> oif -> (HW SRC) -> iif -> och -> orb -> (CPU)
232 /* Guard sub->rd_offs and wr_offs from IRQ handler. */
269 struct uniphier_aio_sub sub[2]; member
303 return &chip->aios[dai->id]; in uniphier_priv()
316 u64 aio_rb_cnt(struct uniphier_aio_sub *sub);
317 u64 aio_rbt_cnt_to_end(struct uniphier_aio_sub *sub);
318 u64 aio_rb_space(struct uniphier_aio_sub *sub);
319 u64 aio_rb_space_to_end(struct uniphier_aio_sub *sub);
325 int aio_init(struct uniphier_aio_sub *sub);
326 void aio_port_reset(struct uniphier_aio_sub *sub);
327 int aio_port_set_param(struct uniphier_aio_sub *sub, int pass_through,
329 void aio_port_set_enable(struct uniphier_aio_sub *sub, int enable);
330 int aio_port_get_volume(struct uniphier_aio_sub *sub);
331 void aio_port_set_volume(struct uniphier_aio_sub *sub, int vol);
332 int aio_if_set_param(struct uniphier_aio_sub *sub, int pass_through);
333 int aio_oport_set_stream_type(struct uniphier_aio_sub *sub,
335 void aio_src_reset(struct uniphier_aio_sub *sub);
336 int aio_src_set_param(struct uniphier_aio_sub *sub,
338 int aio_srcif_set_param(struct uniphier_aio_sub *sub);
339 int aio_srcch_set_param(struct uniphier_aio_sub *sub);
340 void aio_srcch_set_enable(struct uniphier_aio_sub *sub, int enable);
342 int aiodma_ch_set_param(struct uniphier_aio_sub *sub);
343 void aiodma_ch_set_enable(struct uniphier_aio_sub *sub, int enable);
344 int aiodma_rb_set_threshold(struct uniphier_aio_sub *sub, u64 size, u32 th);
345 int aiodma_rb_set_buffer(struct uniphier_aio_sub *sub, u64 start, u64 end,
347 void aiodma_rb_sync(struct uniphier_aio_sub *sub, u64 start, u64 size,
349 bool aiodma_rb_is_irq(struct uniphier_aio_sub *sub);
350 void aiodma_rb_clear_irq(struct uniphier_aio_sub *sub);