Edit online

数据结构设计

2 Dec 2024
Read time: 1 minute(s)
  • aic_i2s
    struct aic_i2s {
            struct clk *clk;
            struct reset_control *rst;
            struct regmap *regmap;
    
            struct snd_dmaengine_dai_dma_data playback_dma_data;
            struct snd_dmaengine_dai_dma_data capture_dma_data;
            unsigned int mclk_freq;
            unsigned int bclk_ratio;
            unsigned int format;
            unsigned int slots;
            unsigned int slot_width;
    };
    部分变量说明:
    • playback_dma_data:播放时的音频数据结构,用于配置 DMA 传输的目的地址,数据宽度等信息

    • capture_dma_data:录音时音频数据结构,用于配置 DMA 传输的起始地址,数据宽度等信息

    • mclk_freq:I2S 的 MCLK 时钟频率

    • bclk_ratio:LRCK 与 BCLK 的比率

    • format:设置 S 的传输格式

    • slots:设置 S 的通道数

    • slot_width:设置 S 的每个通道占用位数

  • aic_i2s_clk_div
    struct aic_i2s_clk_div {
            u8 div; /* bclk 和 mclk 的分频系数 */
            u8 val; /* 分频系数 div 所对应的寄存器的值 */
    };