SAI(Serial Audio Interface)提供了多种音频协议,例如:I2S标准(LSB或MSB认证),PCM / DSP,TDM和S / PDIF。 SAI包含两个独立的音频子块,Block-A和Block-B。。 每个子模块都有自己的时钟发生器和I / O线路控制器,可以配置为发送器或接收器。
特性:
- 支持高达192khz的音频采样频率。
- SAI可以在工作在master或slave配置。
- 音频子块可以是接收器(receiver),也可以是发送器(transmitter),并且可以同步或异步地工作(相对于另一个)。
- SAI可以与其他SAI连接以同步工作。
-
-
以下是SAI2控制器的dts代码,arch/arm/boot/dts/stm32mp157c.dtsi文件中
-
sai2: sai@4400b000 { compatible = "st,stm32h7-sai"; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x4400b000 0x400>; reg = <0x4400b000 0x4>; interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; resets = <&rcc SAI2_R>; status = "disabled"; sai2a: audio-controller@4400b004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; reg = <0x4 0x1c>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 89 0x400 0x01>; status = "disabled"; }; sai2b: audio-controller@4400b024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; reg = <0x24 0x1c>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 90 0x400 0x01>; status = "disabled"; }; };