I can enable bananpi M2 ultra sound (headphone and mic on pcb) You must add this on the dtsi file.
dma: dma-controller@01c02000 {
compatible = "allwinner,sun8i-h3-dma";
reg = <0x01c02000 0x1000>;
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_DMA>;
resets = <&ccu RST_BUS_DMA>;
#dma-cells = <1>;
};
codec: codec@01c22c00 {
#sound-dai-cells = <0>;
compatible = "allwinner,sun8i-h3-codec";
reg = <0x01c22c00 0x300>;
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>;
clock-names = "apb", "codec";
resets = <&ccu RST_BUS_CODEC>;
dmas = <&dma 19>, <&dma 19>;
dma-names = "rx", "tx";
allwinner,codec-analog-controls = <&codec_analog>;
allwinner,audio-routing =
"Headphone", "HP",
"LINEIN", "Line In",
"MIC1", "MBIAS",
"MIC1", "Mic",
"MIC2", "HBIAS",
"MIC2", "Headset Mic";
status = "okay";
};
codec_analog: codec-analog@01c22f00 {
compatible = "allwinner,sun8i-a23-codec-analog";
reg = <0x01c22f00 0x4>;
};
Then modules that must be loaded are
sun8i_codec_analog 24576 1
sun4i_codec 32768 3
snd_soc_core 118784 2 sun4i_codec,sun8i_codec_analog
snd_pcm_dmaengine 16384 1 snd_soc_core
snd_pcm 65536 2 snd_pcm_dmaengine,snd_soc_core
snd_timer 24576 1 snd_pcm
snd 45056 3 snd_timer,snd_soc_core,snd_pcm
soundcore 16384 1 snd
to test the player execute that to check the sound
$ aplay /usr/share/sounds/alsa/Front_Center.wav
then execute
$ alsamixer
to control the volumen and gain
To enable mic do that.
1) open alsamixer;
2) press "tab" to switch to capture;
3) press "bar" on the first capture channel;
"L_____R" red sign should appear;
4) select by arrow key MIC as the source of the first
input source;
2) record a test file:
arecord -f cd -D hw:0,0 -d 10 test.wav
play it back to test i.e.:
mplayer test.wav
Thats all ...
best regards Asimov