### PCM_CFG

Bit Field | Read/Write | Field Name | Description
--- | --- | --- | ---
25 | RW | TX_ACK_SEL | Select which TX word acknowleges the TX request
24 | RW | RX_ACK_SEL | Select which RX word acknowleges the RX request
23 | RW | TX_DMA_ENABLE | Enable/disable the TX DMA request
22 | RW | RX_DMA_ENABLE | Enable/disable the RX DMA request
21 | RW | TX_IOC_ENABLE | Enable/disable the TX IOC request
20 | RW | RX_IOC_ENABLE | Enable/disable the RX IOC request
19 | RW | RX_TX_INT_ENABLE | Enable/disable the RX_TX interrupt
17 | RW | OVERRUN_INT_EN | Enable/disable the overrun interrupt
16 | RW | UNDERRUN_INT_EN | Enable/disable the underrun interrupt
15 | RW | CLK_POLARITY | Select the PCM clock polarity
14 | RW | TX_DATA_ALIGN | Select the TX data alignment
13 | RW | RX_DATA_ALIGN | Select the RX data alignment
12:8 | RW | WORD_SIZE | Select the number of bits per PCM word
7 | RW | BIT_ORDER | Select whether the data is transmitted starting with the MSB or LSB
6 | RW | FRAME_ALIGN | Align the PCM frame signal to the first/last bit
5 | RW | FRAME_WIDTH | Use a long/short PCM frame signal
4:2 | RW | FRAME_LENGTH | Select the number of words per PCM frame
1 | RW | SUBFRAME | Enable the frame duration for each word
0 | RW | SLAVE | Use the PCM interface as a master/slave

Bit Field | Field Name | Value Symbol | Value Description | Hex Value
--- | --- | --- | --- | ---
25 | TX_ACK_SEL | PCM_TX_ACK_DATA0 | TX data0 acknowledges the TX request | 0x0*
|  | PCM_TX_ACK_DATA1 | TX data1 acknowledges the TX request | 0x1
24 | RX_ACK_SEL | PCM_RX_ACK_DATA0 | RX data0 acknowledges the RX request | 0x0*
|  | PCM_RX_ACK_DATA1 | RX data1 acknowledges the RX request | 0x1
23 | TX_DMA_ENABLE | PCM_TX_DMA_DISABLE | No TX DMA request is generated | 0x0*
|  | PCM_TX_DMA_ENABLE | A TX DMA request is generated when new data is requested by the PCM interface | 0x1
22 | RX_DMA_ENABLE | PCM_RX_DMA_DISABLE | No RX DMA request is generated | 0x0*
|  | PCM_RX_DMA_ENABLE | An RX DMA request is generated when new data is received by the PCM interface | 0x1
21 | TX_IOC_ENABLE | PCM_TX_IOC_DISABLE | No TX IOC request is generated | 0x0*
|  | PCM_TX_IOC_ENABLE | A TX IOC request is generated when new data is requested by the PCM interface | 0x1
20 | RX_IOC_ENABLE | PCM_RX_IOC_DISABLE | No RX IOC request is generated | 0x0*
|  | PCM_RX_IOC_ENABLE | An RX IOC request is generated when new data is received by the PCM interface | 0x1
19 | RX_TX_INT_ENABLE | PCM_RX_TX_INT_DISABLE | No RX_TX interrupt is raised | 0x0*
|  | PCM_RX_TX_INT_ENABLE | An RX_TX interrupt is raised when new data is received or requested by the PCM interface | 0x1
17 | OVERRUN_INT_EN | PCM_OVERRUN_INT_DISABLE | No ERROR interrupt is raised when an overrun is detected | 0x0*
|  | PCM_OVERRUN_INT_ENABLE | An ERROR interrupt is raised when an overrun occurs on the PCM interface | 0x1
16 | UNDERRUN_INT_EN | PCM_UNDERRUN_INT_DISABLE | No ERROR interrupt is raised when an underrun is detected | 0x0*
|  | PCM_UNDERRUN_INT_ENABLE | An ERROR interrupt is raised when an underrun occurs on the PCM interface | 0x1
15 | CLK_POLARITY | PCM_SAMPLE_FALLING_EDGE | PCM input data sampled on PCM_CLK falling edge | 0x0*
|  | PCM_SAMPLE_RISING_EDGE | PCM input data sampled on PCM_CLK rising edge | 0x1
14 | TX_DATA_ALIGN | PCM_TX_DATA_ALIGN_MSB | TX data is aligned on the MSB of the 32-bit TX buffer | 0x0*
|  | PCM_TX_DATA_ALIGN_LSB | TX data is aligned on the LSB of the 32-bit TX buffer | 0x1
13 | RX_DATA_ALIGN | PCM_RX_DATA_ALIGN_MSB | RX data is aligned on the MSB of the 32-bit RX buffer | 0x0*
|  | PCM_RX_DATA_ALIGN_LSB | RX data is aligned on the LSB of the 32-bit RX buffer | 0x1
12:8 | WORD_SIZE | PCM_WORD_SIZE_8 | Use 8-bit words | 0x0
|  | PCM_WORD_SIZE_9 | Use 9-bit words | 0x1
|  | PCM_WORD_SIZE_10 | Use 10-bit words | 0x2
|  | PCM_WORD_SIZE_11 | Use 11-bit words | 0x3
|  | PCM_WORD_SIZE_12 | Use 12-bit words | 0x4
|  | PCM_WORD_SIZE_13 | Use 13-bit words | 0x5
|  | PCM_WORD_SIZE_14 | Use 14-bit words | 0x6
|  | PCM_WORD_SIZE_15 | Use 15-bit words | 0x7
|  | PCM_WORD_SIZE_16 | Use 16-bit words | 0x8*
|  | PCM_WORD_SIZE_17 | Use 17-bit words | 0x9
|  | PCM_WORD_SIZE_18 | Use 18-bit words | 0xA
|  | PCM_WORD_SIZE_19 | Use 19-bit words | 0xB
|  | PCM_WORD_SIZE_20 | Use 20-bit words | 0xC
|  | PCM_WORD_SIZE_21 | Use 21-bit words | 0xD
|  | PCM_WORD_SIZE_22 | Use 22-bit words | 0xE
|  | PCM_WORD_SIZE_23 | Use 23-bit words | 0xF
|  | PCM_WORD_SIZE_24 | Use 24-bit words | 0x10
|  | PCM_WORD_SIZE_25 | Use 25-bit words | 0x11
|  | PCM_WORD_SIZE_26 | Use 26-bit words | 0x12
|  | PCM_WORD_SIZE_27 | Use 27-bit words | 0x13
|  | PCM_WORD_SIZE_28 | Use 28-bit words | 0x14
|  | PCM_WORD_SIZE_29 | Use 29-bit words | 0x15
|  | PCM_WORD_SIZE_30 | Use 30-bit words | 0x16
|  | PCM_WORD_SIZE_31 | Use 31-bit words | 0x17
|  | PCM_WORD_SIZE_32 | Use 32-bit words | 0x18
7 | BIT_ORDER | PCM_BIT_ORDER_MSB_FIRST | PCM data is ordered from MSB to LSB. | 0x0*
|  | PCM_BIT_ORDER_LSB_FIRST | PCM data is ordered from LSB to MSB. | 0x1
6 | FRAME_ALIGN | PCM_FRAME_ALIGN_LAST | Align the PCM frame signal to the last bit of the frame. | 0x0*
|  | PCM_FRAME_ALIGN_FIRST | Align the PCM frame signal to the first bit of the frame. | 0x1
5 | FRAME_WIDTH | PCM_FRAME_WIDTH_SHORT | The frame is high for one PCM clock period. | 0x0*
|  | PCM_FRAME_WIDTH_LONG | The frame is high for half of the frame length. | 0x1
4:2 | FRAME_LENGTH | PCM_MULTIWORD_2 | A frame contains 2 words. | 0x0*
|  | PCM_MULTIWORD_4 | A frame contains 4 words. | 0x1
|  | PCM_MULTIWORD_6 | A frame contains 6 words. | 0x2
|  | PCM_MULTIWORD_8 | A frame contains 8 words. | 0x3
|  | PCM_MULTIWORD_10 | A frame contains 10 words. | 0x4
|  | PCM_MULTIWORD_12 | A frame contains 12 words. | 0x5
|  | PCM_MULTIWORD_14 | A frame contains 14 words. | 0x6
|  | PCM_MULTIWORD_16 | A frame contains 16 words. | 0x7
1 | SUBFRAME | PCM_SUBFRAME_DISABLE | Generate a frame signal every frame. | 0x0*
|  | PCM_SUBFRAME_ENABLE | Generate a frame signal every word. | 0x1
0 | SLAVE | PCM_SELECT_MASTER | The PCM interface generates the PCM_FRAME. | 0x0
|  | PCM_SELECT_SLAVE | The PCM interface received an external PCM_FRAME. | 0x1*