Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

I2S Codec on Euler bus of Pine A64+

Featured Replies

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


   

  • Author

I tried

sound@1 {
compatible = "allwinner,sunxi-daudio0-machine";
sunxi,daudio0-controller = <0x4e>;
status = "okay"
device_type = "snddaudio0";
};

 

and also changed the status to "okay" on below entry.

   daudio@0x01c22000 {
                        compatible = "allwinner,sunxi-daudio";
                        reg = <0x0 0x1c22000 0x0 0x58>;
                        clocks = <0x2 0x42>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <0x43>;
                        pinctrl-1 = <0x44>;
                        pcm_lrck_period = <0x20>;
                        pcm_lrckr_period = <0x1>;
                        slot_width_select = <0x20>;
                        pcm_lsb_first = <0x0>;
                        tx_data_mode = <0x0>;
                        rx_data_mode = <0x0>;
                        daudio_master = <0x4>;
                        audio_format = <0x1>;
                        signal_inversion = <0x1>;
                        frametype = <0x0>;
                        tdm_config = <0x1>;
                        tdm_num = <0x0>;
                        status = "okay";
                        linux,phandle = <0x4e>;
                        phandle = <0x4e>;
                        device_type = "daudio0";
                };
 

Even with this changes I2S at Euler pin is not working.  Does anyone tried testing I2S on Euler bus pin with kernel 3.10.107 ?

 

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.