Edge2 I/O Module - ES8316 playback is silent on the official BSP 6.1.118 image even though the codec is detected correctly, and the kernel reports repeated ASoC -6 register failures during stream startup

Which version of system do you use? Khadas official images, self built images, or others?

Khadas official Ubuntu 24.04.4 LTS image with vendor BSP packages. Installed packages include `linux-image-rockchip-6.1` version `1.7.5`, `linux-dtb-rockchip-6.1` version `1.7.5`, and `linux-u-boot-edge2-vendor` version `1.7.5-2017.09`.

Please describe your issue below:

I am using a Khadas Edge2 Pro with the I/O module, and I need working audio for my university thesis project.

I am seeing a reproducible playback issue with the ES8316 codec:

- Board: Khadas Edge2 Pro with I/O module

- SoC: RK3588S

- Codec: ES8316 on I2C bus 3, address 0x10

- Kernel: 6.1.118

- ALSA card: `rockchipes8316c` (card 3)

- Default PipeWire sink: `alsa_output.platform-es8316-sound.stereo-fallback`

The codec is detected correctly and exposed as ALSA card `rockchipes8316c`, and playback can be started from userspace through both direct ALSA and PipeWire/PulseAudio.

However:

- there is no audible output from either the speaker path or the headphone jack,

- `aplay` returns success,

- but the kernel reports repeated ES8316 ASoC register access/update failures with errno `-6` during playback startup.

Minimal reproduction:

```text

head -c 384000 /dev/zero | aplay -D hw:CARD=rockchipes8316c,DEV=0 -q -t raw -f S16_LE -c 2 -r 48000

```

The device is identified as:

```text

$ aplay -L | grep rockchipes8316c -m1

hw:CARD=rockchipes8316c,DEV=0

$ aplay -l | grep es8316-codec -A2

card 3: rockchipes8316c [rockchip,es8316-codec], device 0: fe470000.i2s-ES8316 HiFi ES8316 HiFi-0 [fe470000.i2s-ES8316 HiFi ES8316 HiFi-0]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

```

From my current debugging, this does not look like a simple user-space routing problem, because it reproduces on both direct ALSA and PipeWire/PulseAudio. The earliest recurring runtime failure appears at register `0x0b` during stream bring-up.

Any quick guidance, workaround, or known patch would be greatly appreciated.

Post a console log of your issue below:

```text

BUGREP_1777025461 START

BUGREP_1777025461 RC=0



Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x0000000b] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x0000000a] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000009] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000004] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000005] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000006] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000007] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000001] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x0000000d] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000018] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000019] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x0000001a] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x0000002f] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000015] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000017] -6

Apr 24 10:11:01 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000030] -6

Apr 24 10:11:03 Khadas kernel: es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010 for register: [0x00000030] -6

```

Please use our official firmware( edge2-ubuntu-24.04-gnome-linux-6.1-fenix-1.7.5-250925-emmc.img.xz ) to rule out hardware issue.

Thank you for your answer!

I checked the running system and it already matches the official Edge2 Ubuntu 24.04 / Linux 6.1 / Fenix 1.7.5 stack you referenced:Ubuntu 24.04.4 LTS
linux-image-rockchip-6.1 1.7.5
linux-dtb-rockchip-6.1 1.7.5
linux-u-boot-edge2-vendor 1.7.5-2017.09
uname -a: Linux Khadas 6.1.118 #1.7.5 SMP Thu Sep 25 22:51:21 CST 2025 …

The device was initially set up via OOWOW, so as far as I can tell this is already the official firmware family you mentioned. Reconnecting and cleaning the module and cables also did not work.

If this firmware version is already correct, could you advise the next debug step for the ES8316 audio path on Edge2?
The codec is detected, but playback still fails with repeated ES8316 ASoC register access errors (-6) during stream bring-up. The repeated -6 (ENXIO) errors during ES8316 register read/update suggest that the codec becomes inaccessible during playback startup, as if it were not responding on the control bus at runtime.

Hello shin5vs, I think it is hareware issue. I flashed edge2-ubuntu-24.04-gnome-linux-6.1-fenix-1.7.5-250925-emmc.img.xz into my Edge2 and test audio, it worked normal whitout any error.

khadas@Khadas:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipdp0 [rockchip-dp0], device 0: rockchip-dp0 spdif-hifi-0 [rockchip-dp0 spdif-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: rockchipes8316c [rockchip,es8316-codec], device 0: fe470000.i2s-ES8316 HiFi ES8316 HiFi-0 [fe470000.i2s-ES8316 HiFi ES8316 HiFi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


# This command run without any error.
khadas@Khadas:~$ head -c 384000 /dev/zero | aplay -D  hw:CARD=rockchipes8316c,DEV=0 -q -t raw -f S16_LE -c 2 -r 48000

#can hear noise in hp or spk
khadas@Khadas:~$ head -c 384000 /dev/urandom | aplay -D hw:CARD=rockchipes8316c,DEV=0 -q -t raw -f S16_LE -c 2 -r 48000 

# can hear music in hp or spk. 
khadas@Khadas:~$ aplay -D hw:3,0 /This_is_love.wav
Playing WAVE '/This_is_love.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

Please re-connect the IO board and ensure that the connecting wires are properly plugged in.
If the problem persists, it will need to be handled by after-sales service.

1 Like