I am using an armbian build image on PINE A64+ board with the kernel 3.10.107. During build i enabled below I2S driver as built-in.
CONFIG_SND_SOC_SUNXI_RW=y
CONFIG_SND_SOC_SUNXI_AUDIO_DMA=y
CONFIG_SND_SOC_SUNXI_TDM=y
CONFIG_SND_SUNXI_SOC=y
CONFIG_SND_SOC_INTERNAL_AUDIOCODEC=y
CONFIG_SND_SOC_INTERNAL_I2S=y
CONFIG_SND_SOC_AUDIO_CODEC_MACHINE=y
CONFIG_SND_SOC_DAUDIO_PLATFORM=y
CONFIG_SND_SOC_VIRCODEC=y
CONFIG_SND_SOC_DAUDIO0_MACHINE=y
# CONFIG_SND_SOC_DAUDIO1_MACHINE is not set
CONFIG_SND_SUNXI_SOC_HDMIAUDIO=y
The Internal Audio and HDMI Audio are initialized successfully but failed to snddaudio0 which can be accessed from Euler bus pins. below is the error log.
Dec 4 02:22:10 localhost kernel: [ 10.453351] snddaudio0 sound.8: ASoC: CPU DAI (null) not registered
Dec 4 02:22:10 localhost kernel: [ 10.453386] snddaudio0 sound.8: snd_soc_register_card() failed: -517
Dec 4 02:22:10 localhost kernel: [ 10.453390] [RANJ] sunxi_snddaudio0_dev_probe done with -517
apaly - l returns the following
root@pine64:/boot# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC codec-aif1-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: audiocodec [audiocodec], device 1: bb Voice codec-aif2-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: audiocodec [audiocodec], device 2: bb-bt-clk codec-aif2-2 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: audiocodec [audiocodec], device 3: bt Voice codec-aif3-3 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
Before I tried to load as modules with below changes .
<*> ASoC support for audiocodec
<M> ASoC support for internal-i2s
<M> ASoC support for audiocodec machine
<M> ASoC support for daudio platform.
<M> ASoC support for vircodec
<M> ASoC support for daudio0 machine
< > ASoC support for daudio1 machine
<M> ASoC support for hdmiaudio
changed the device tree file for sound@1 (sun50iw1pi-pine64-plus.dtb)
sound@1 {
compatible = "allwinner,sunxi-daudio0-machine";
sunxi,daudio0-controller = <0x4e>;
status = "disabled"; -------> "okay"
device_type = "snddaudio0";
};
The result is same. Please help me to enable I2S codec testing on Euler bus I2S pins using Armbian build image.
Regards
Ranjit