Interface configuration options. 
Memory slab pointed to by the mem_slab field has to be defined and initialized by the user. For I2S driver to function correctly number of memory blocks in a slab has to be at least 2 per queue. Size of the memory block should be multiple of frame_size where frame_size = (channels * word_size_bytes). As an example 16 bit word will occupy 2 bytes, 24 or 32 bit word will occupy 4 bytes.
Please check Zephyr Kernel Primer for more information on memory slabs.
- Parameters
 - 
  
    | word_size | Number of bits representing one data word.  | 
    | channels | Number of words per frame.  | 
    | format | Data stream format as defined by I2S_FMT_* constants.  | 
    | options | Configuration options as defined by I2S_OPT_* constants.  | 
    | frame_clk_freq | Frame clock (WS) frequency, this is sampling rate.  | 
    | mem_slab | memory slab to store RX/TX data.  | 
    | block_size | Size of one RX/TX memory block (buffer) in bytes.  | 
    | timeout | Read/Write timeout. Number of milliseconds to wait in case TX queue is full or RX queue is empty, or 0, or SYS_FOREVER_MS.  |