| # Copyright 2023 NXP |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: NXP Synchronous Audio Interface (SAI) node |
| |
| compatible: "nxp,dai-sai" |
| |
| include: [base.yaml, pinctrl-device.yaml] |
| |
| properties: |
| reg: |
| required: true |
| mclk-is-output: |
| type: boolean |
| description: | |
| Use this property to set the SAI MCLK as output or as input. |
| By default, if this property is not specified, MCLK will be |
| set as input. Setting the MCLK as output for SAIs which don't |
| support MCLK configuration will result in a BUILD_ASSERT() |
| failure. |
| rx-fifo-watermark: |
| type: int |
| description: | |
| Use this property to specify the watermark value for the TX |
| FIFO. This value needs to be in FIFO words (NOT BYTES). This |
| value needs to be in the following interval: (0, DEFAULT_FIFO_DEPTH], |
| otherwise a BUILD_ASSERT() failure will be raised. |
| tx-fifo-watermark: |
| type: int |
| description: | |
| Use this property to specify the watermark value for the RX |
| FIFO. This value needs to be in FIFO words (NOT BYTES). This |
| value needs to be in the following interval: (0, DEFAULT_FIFO_DEPTH], |
| otherwise a BUILD_ASSERT() failure will be raised. |
| interrupts: |
| required: true |
| fifo-depth: |
| type: int |
| description: | |
| Use this property to set the FIFO depth that will be reported |
| to other applications calling dai_get_properties(). This value |
| should be in the following interval: (0, DEFAULT_FIFO_DEPTH], |
| otherwise a BUILD_ASSERT() failure will be raised. |
| By DEFAULT_FIFO_DEPTH we mean the actual (hardware) value of |
| the FIFO depth. This is needed because some applications (e.g: SOF) |
| use this value to compute the DMA burst size, in which case |
| DEFAULT_FIFO_DEPTH cannot be used. Generally, reporting a false |
| FIFO depth should be avoided. Please note that the sanity check |
| for tx/rx-fifo-watermark uses DEFAULT_FIFO_DEPTH instead of this |
| value so use with caution. If unsure, it's better to simply not |
| use this property, in which case the reported value will be |
| DEFAULT_FIFO_DEPTH. |
| dai-index: |
| type: int |
| description: | |
| Use this property to specify the index of the DAI. At the |
| moment, this is only used by SOF to fetch the "struct device" |
| associated with the DAI whose index Linux passes to SOF |
| through an IPC. If this property is not specified, the DAI |
| index will be considered 0. |
| tx-sync-mode: |
| type: int |
| enum: |
| - 0 |
| - 1 |
| description: | |
| Use this property to specify which synchronization mode to use |
| for the transmitter. At the moment, the only supported modes are: |
| 1) The transmitter is ASYNC (0) |
| 2) The transmitter is in SYNC with the receiver (1) |
| If this property is not specified, the transmitter will be set to ASYNC. |
| If one side is SYNC then the other MUST be ASYNC. Failing to meet this |
| condition will result in a failed BUILD_ASSERT(). |
| rx-sync-mode: |
| type: int |
| enum: |
| - 0 |
| - 1 |
| description: | |
| Use this property to specify which synchronization mode to use |
| for the receiver. At the moment, the only supported modes are: |
| 1) The receiver is ASYNC (0) |
| 2) The receiver is in SYNC with the transmitter (1) |
| If this property is not specified, the receiver will be set to ASYNC. |
| If one side is SYNC then the other MUST be ASYNC. Failing to meet this |
| condition will result in a failed BUILD_ASSERT(). |
| tx-dataline: |
| type: int |
| description: | |
| Use this property to specify which transmission data line the SAI should |
| use. To find out which transmission line you should use you can: |
| 1) Check the TRM and see if your SAI instance is multiline. If not then |
| you're going to use transmission line 0. |
| 2) If your SAI is multiline then you need to check the datasheet and see |
| the index of the transmission line that's connected to your consumer |
| (e.g: the codec). |
| The indexing of the data line starts at 0. If this property is not specified |
| then the index of the transmission data line will be 0. |
| Please note that "channel" and "data line" are synnonyms in this context. |
| rx-dataline: |
| type: int |
| description: | |
| Use this property to specify which receive transmission data line the SAI should |
| use. To find out which receive line you should use you can: |
| 1) Check the TRM and see if your SAI instance is multiline. If not then |
| you're going to use receive line 0. |
| 2) If your SAI is multiline then you need to check the datasheet and see |
| the index of the receive line that's connected to your consumer (e.g: the codec). |
| The indexing of the data line starts at 0. If this property is not specified |
| then the index of the receive data line will be 0. |
| Please note that "channel" and "data line" are synnonyms in this context. |