Vonger / vocore2

VoCore2 firmware drivers
https://vocore.io
96 stars 45 forks source link

如何支持pcm5102a的I2S声音芯片呢 #44

Closed colorhacker closed 1 year ago

colorhacker commented 1 year ago

openwrt22.03 我买了一个不带I2C的PCM5102A芯片,接上去能够识别到声卡,并且能够输出12Mhz的时钟。 speaker-test 执行时报错:

root@OpenWrt:/# speaker-test 

speaker-test 1.2.6

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 32768
Period size range from 1024 to 2048
Using max buffer size 32768
Periods = 4
was set period_size = 2048
was set buffer_size = 32768
 0 - Front Left
Write error: -32,Broken pipe
Write error: -32,Broken pipe
Write error: -32,Broken pipe
Time per period = 0.377953
 0 - Front Left
Write error: -32,Broken pipe
Write error: -32,Broken pipe
Write error: -32,Broken pipe
Write error: -32,Broken pipe
Time per period = 0.493185
 0 - Front Left

设备树:

    sound {
        compatible = "simple-audio-card";
        simple-audio-card,name = "pcm5102a";
        simple-audio-card,format = "i2s";
        simple-audio-card,bitclock-master = <&dailink0_master>;
        simple-audio-card,frame-master = <&dailink0_master>;
        simple-audio-card,mclk-fs = <256>;
        simple-audio-card,cpu {
            sound-dai = <&i2s>;
        };
        dailink0_master: simple-audio-card,codec {
            sound-dai = <&codec>;   
        };
    };
    codec: pcm5102a {
        #sound-dai-cells = <0>;
        compatible = "ti,pcm5102a";
    };

&i2s {
    #sound-dai-cells = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&i2s_pins>, <&refclk_pins>;

    status = "okay";
};

&gdma {
    status = "okay";
};