Lines Matching +full:inter +full:- +full:frame
4 * SPDX-License-Identifier: Apache-2.0
9 * @brief Public APIs for the I2S (Inter-IC Sound) bus drivers.
20 * @brief I2S (Inter-IC Sound) Interface
23 * as common non-standard extensions such as PCM Short/Long Frame Sync,
55 * -. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
56 * SCK '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '
57 * -. .-------------------------------.
58 * WS '-------------------------------' '----
59 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.
61 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'
66 /** @brief PCM Short Frame Sync Data Format.
70 * of the clock signal (SCK). The falling edge of the frame sync signal (WS)
71 * indicates the start of the PCM word. The frame sync is one clock cycle long.
72 * An arbitrary number of data words can be sent in one frame.
74 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
75 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
76 * .---. .---.
77 * WS -' '- -' '-
78 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---
80 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---
85 /** @brief PCM Long Frame Sync Data Format.
89 * of the clock signal (SCK). The rising edge of the frame sync signal (WS)
90 * indicates the start of the PCM word. The frame sync has an arbitrary length,
91 * however it has to fall before the start of the next frame. An arbitrary
92 * number of data words can be sent in one frame.
94 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
95 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
96 * .--- ---. ---. ---. .---
97 * WS -' '- '- '- -'
98 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---
100 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---
115 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
116 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
117 * .-------------------------------. .-
118 * WS ---' '-------------------------------'
119 * ---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
121 * ---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
136 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
137 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
138 * .-------------------------------. .-
139 * WS ---' '-------------------------------'
140 * ---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
142 * ---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
161 /** Invert frame clock */
164 /** Normal Frame, Normal Bit Clk */
166 /** Normal Frame, Inverted Bit Clk */
168 /** Inverted Frame, Normal Bit Clk */
170 /** Inverted Frame, Inverted Bit Clk */
184 /** I2S driver is frame clock master */
186 /** I2S driver is frame clock slave */
293 * number of words in a frame is always 2.
298 /** Number of words per frame. */
304 /** Frame clock (WS) frequency, this is sampling rate. */
344 * If the function is called with the parameter cfg->frame_clk_freq set to 0
354 * @retval -EINVAL Invalid argument.
355 * @retval -ENOSYS I2S_DIR_BOTH value is not supported.
365 (const struct i2s_driver_api *)dev->api; in z_impl_i2s_configure()
367 return api->configure(dev, dir, cfg); in z_impl_i2s_configure()
376 * or NULL if un-configured
382 (const struct i2s_driver_api *)dev->api; in i2s_config_get()
384 return api->config_get(dev, dir); in i2s_config_get()
401 * is non-blocking.
405 * valid data stored in RX queue. Afterwards the function will return -EIO
413 * @retval -EIO The interface is in NOT_READY or ERROR state and there are no
415 * @retval -EBUSY Returned without waiting.
416 * @retval -EAGAIN Waiting period timed out.
422 (const struct i2s_driver_api *)dev->api; in i2s_read()
424 return api->read(dev, mem_block, size); in i2s_read()
446 * @retval -EIO The interface is in NOT_READY or ERROR state and there are no
448 * @retval -EBUSY Returned without waiting.
449 * @retval -EAGAIN Waiting period timed out.
464 * set to K_NO_WAIT the function is non-blocking.
475 * @retval -EIO The interface is not in READY or RUNNING state.
476 * @retval -EBUSY Returned without waiting.
477 * @retval -EAGAIN Waiting period timed out.
483 (const struct i2s_driver_api *)dev->api; in i2s_write()
485 return api->write(dev, mem_block, size); in i2s_write()
501 * @retval -EIO The interface is not in READY or RUNNING state.
502 * @retval -EBUSY Returned without waiting.
503 * @retval -EAGAIN Waiting period timed out.
504 * @retval -ENOMEM No memory in TX slab queue.
505 * @retval -EINVAL Size parameter larger than TX queue memory block.
520 * @retval -EINVAL Invalid argument.
521 * @retval -EIO The trigger cannot be executed in the current state or a DMA
523 * @retval -ENOMEM RX/TX memory block not available.
524 * @retval -ENOSYS I2S_DIR_BOTH value is not supported.
534 (const struct i2s_driver_api *)dev->api; in z_impl_i2s_trigger()
536 return api->trigger(dev, dir, cmd); in z_impl_i2s_trigger()