.. the transmitter and receiver sections may use common clock and synchronization signals (synchronous operation mode), or they may have their own seperate clock and sync signals (asynchronous operation mode)..所以 TX, RX 可以共用 CLK, FS, 並不是一定要分開。
區分的方式..
The SYN bit in ESAI_SAICR register selects synchronous or asynchronous operation..
source code..
sound/soc/fsl/fsl_esai.c..
/** * fsl_esai: ESAI private data * .... * .... * @synchronous: if using tx/rx synchronous mode */ struct fsl_esai { ... bool synchronous; char name[32]; };driver private data 有一個item 紀錄是synchronous
這個 item 是由 dts 來決定..
static int fsl_esai_probe(struct platform_device *pdev) { .... esai_priv->synchronous = of_property_read_bool(np, "fsl,esai-synchronous");
所以看一下 dts/dtsi..
--- 找不到。
所以 Documentation/devicetree/bindings/sound/fsl,esai.txt:
.... - fsl,esai-synchronous: This is a boolean property. If present, indicating that ESAI would work in the synchronous mode, which means all the settings for Receiving would be duplicated from Transmition related registers. Example: esai: esai@02024000 { compatible = "fsl,imx35-esai"; reg = <0x02024000 0x4000>; interrupts = <0 51 0x04>; clocks = <&clks 208>, <&clks 118>, <&clks 208>; clock-names = "core", "extal", "fsys"; dmas = <&sdma 23 21 0>, <&sdma 24 21 0>; dma-names = "rx", "tx"; fsl,fifo-depth = <128>; fsl,esai-synchronous; status = "disabled"; };
沒有留言:
張貼留言