Lines Matching +full:tx +full:- +full:invert
4 * SPDX-License-Identifier: Apache-2.0
9 * @brief Public APIs for the I2S (Inter-IC Sound) bus drivers.
18 * @brief I2S (Inter-IC Sound) Interface
21 * as common non-standard extensions such as PCM Short/Long Frame Sync,
53 * -. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
54 * SCK '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '
55 * -. .-------------------------------.
56 * WS '-------------------------------' '----
57 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.
59 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'
72 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
73 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
74 * .---. .---.
75 * WS -' '- -' '-
76 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---
78 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---
92 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
93 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
94 * .--- ---. ---. ---. .---
95 * WS -' '- '- '- -'
96 * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---
98 * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---
113 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
114 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
115 * .-------------------------------. .-
116 * WS ---' '-------------------------------'
117 * ---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
119 * ---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
134 * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
135 * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-
136 * .-------------------------------. .-
137 * WS ---' '-------------------------------'
138 * ---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
140 * ---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
149 /** Invert bit ordering, send LSB first */
157 /** Invert bit clock */
159 /** Invert frame clock */
189 * In loop back mode RX input will be connected internally to TX output.
196 * In ping pong mode TX output will keep alternating between a ping buffer
231 /** TX buffer underrun or RX buffer overrun has occurred. */
248 * first changes the interface state to STOPPING. When the current TX /
259 * at first changes the interface state to STOPPING. When all TX blocks
304 /** Memory slab to store RX/TX data. */
306 /** Size of one RX/TX memory block (buffer) in bytes. */
308 /** Read/Write timeout. Number of milliseconds to wait in case TX queue
336 * The dir parameter specifies if Transmit (TX) or Receive (RX) direction
342 * If the function is called with the parameter cfg->frame_clk_freq set to 0
346 * @param dir Stream direction: RX, TX, or both, as defined by I2S_DIR_*.
348 * For those, the RX and TX streams need to be configured separately.
352 * @retval -EINVAL Invalid argument.
353 * @retval -ENOSYS I2S_DIR_BOTH value is not supported.
363 (const struct i2s_driver_api *)dev->api; in z_impl_i2s_configure()
365 return api->configure(dev, dir, cfg); in z_impl_i2s_configure()
372 * @param dir Stream direction: RX or TX as defined by I2S_DIR_*
374 * or NULL if un-configured
380 (const struct i2s_driver_api *)dev->api; in i2s_config_get()
382 return api->config_get(dev, dir); in i2s_config_get()
399 * is non-blocking.
403 * valid data stored in RX queue. Afterwards the function will return -EIO
411 * @retval -EIO The interface is in NOT_READY or ERROR state and there are no
413 * @retval -EBUSY Returned without waiting.
414 * @retval -EAGAIN Waiting period timed out.
420 (const struct i2s_driver_api *)dev->api; in i2s_read()
422 return api->read(dev, mem_block, size); in i2s_read()
444 * @retval -EIO The interface is in NOT_READY or ERROR state and there are no
446 * @retval -EBUSY Returned without waiting.
447 * @retval -EAGAIN Waiting period timed out.
452 * @brief Write data to the TX queue.
454 * Data to be sent by the I2S interface is stored first in the TX queue. TX
459 * If there are no free slots in the TX queue the function will block waiting
460 * for the next TX memory block to be send and removed from the queue. This
462 * set to K_NO_WAIT the function is non-blocking.
464 * Writing to the TX queue is only possible if the interface is in READY or
468 * @param mem_block Pointer to the TX memory block containing data to be sent.
473 * @retval -EIO The interface is not in READY or RUNNING state.
474 * @retval -EBUSY Returned without waiting.
475 * @retval -EAGAIN Waiting period timed out.
481 (const struct i2s_driver_api *)dev->api; in i2s_write()
483 return api->write(dev, mem_block, size); in i2s_write()
487 * @brief Write data to the TX queue from a provided buffer
489 * This function acquires a memory block from the I2S channel TX queue
496 * than the size of the channel's TX memory block configuration.
499 * @retval -EIO The interface is not in READY or RUNNING state.
500 * @retval -EBUSY Returned without waiting.
501 * @retval -EAGAIN Waiting period timed out.
502 * @retval -ENOMEM No memory in TX slab queue.
503 * @retval -EINVAL Size parameter larger than TX queue memory block.
511 * @param dir Stream direction: RX, TX, or both, as defined by I2S_DIR_*.
514 * and TX streams.
518 * @retval -EINVAL Invalid argument.
519 * @retval -EIO The trigger cannot be executed in the current state or a DMA
521 * @retval -ENOMEM RX/TX memory block not available.
522 * @retval -ENOSYS I2S_DIR_BOTH value is not supported.
532 (const struct i2s_driver_api *)dev->api; in z_impl_i2s_trigger()
534 return api->trigger(dev, dir, cmd); in z_impl_i2s_trigger()