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 Audio Not Working on Orange Pi Zero 2W (Allwinner H618) with MAX98357A

Featured Replies

Hardware:

  • Board: Orange Pi Zero 2W (Allwinner H618)
  • Audio Module: MAX98357A (I2S)

 

Connections:

  • BCLK → PI13 (Pin 7)
  • LRC/WS → PI14 (Pin 16)
  • DIN → PI15 (Pin 31)
  • 5V/GND → Properly connected

 

Software:

  • Armbian Version: 25.5.0-trunk.147 (nightly)
  • Kernel: 6.6.75-current-sunxi64

 

Configuration:

/boot/armbianEnv.txt:

overlay_prefix=sun50i-h618 overlays=i2s param_i2s=on

 

Problem:

  • No sound output via MAX98357A.
  • aplay -l returns "no soundcards found".
  • dmesg | grep i2s shows no output, indicating the I2S driver is not loaded.
  • Missing I2S overlay: Checked /boot/dtb/allwinner/overlay/ — no sun50i-h618-i2s.dtbo (only I2C overlays are present).
  • Loaded sound modules: Only snd_soc_hdmi_codec (HDMI audio).

 

Steps Taken:

  1. Verified physical wiring (BCLK/LRC/DIN, 5V/GND).
  2. Updated to the latest nightly build (25.5.0-trunk.147).
  3. Added overlays=i2s, param_i2s=on to /boot/armbianEnv.txt.
  4. Tried manual driver load: modprobe sun8i-i2s (no effect).

 

Questions:

  1. Is I2S support for Allwinner H618 available in kernel 6.6.75?
  2. Are there plans to add sun50i-h618-i2s.dtbo in future releases?
  3. Is there a workaround to enable I2S on H618 (e.g., custom DTB)?
  4. Would upgrading to kernel 6.7+ resolve this?

 

Diagnostics:

uname -a:

Linux orangepizero2w 6.6.75-current-sunxi64 #1 SMP Sat Feb 1 17:37:57 UTC 2025 aarch64 GNU/Linux

 

cat /etc/armbian-release:

VERSION=25.5.0-trunk.147 BRANCH=current BOARD=orangepizero2w

 

dmesg | grep -i i2s: No output.

 

Request:
Any guidance or patches to enable I2S on H618 would be greatly appreciated. Thank you!

10 minutes ago, kris777 said:

i2s doesn't work on my OrangePi lite either...oops

both lite and zero 2w have nothing in common besides the name ingredient orange. I suggest to create a individual topic for that one and dont forget providing proper logs. "doesnt work" is probably the worst possible issue description.

55 минут назад, Alex Dorokhin сказал:

No sound output via MAX98357A.

Probably there should be a driver for this device in the kernel.

For 6.12.16:


linux-sf> grep -nr 'compatible = "maxim,max9' drivers/media/* drivers/staging/media/*
drivers/media/i2c/max9286.c:1666:       { .compatible = "maxim,max9286" },
drivers/media/i2c/max96714.c:1006:      { .compatible = "maxim,max96714f" },
drivers/media/i2c/max96717.c:1085:      { .compatible = "maxim,max96717f" },
drivers/staging/media/max96712/max96712.c:465:  { .compatible = "maxim,max96712" },

 

  • Author
11 минут назад, going сказал:

Probably there should be a driver for this device in the kernel.

 

Thank you for investigating the driver support for the MAX98357A! However, the absence of maxim,max98357a in the kernel drivers is expected behavior. Here’s why:

The MAX98357A is a "dumb" I2S amplifier
Unlike other Maxim devices (e.g., MAX9286 for cameras), the MAX98357A does not require a dedicated kernel driver. It works as a raw I2S-to-analog converter and relies on the I2S interface itself, configured via ALSA and the SoC’s I2S driver.

The real issue is I2S driver support for Allwinner H618
For the MAX98357A to work, the I2S controller driver (e.g., sun8i-i2s) must be enabled in the kernel. In the OP’s case (kernel 6.6.75), this driver is missing for the H618. Here’s how to fix it:

22 часа назад, Alex Dorokhin сказал:

Unlike other Maxim devices (e.g., MAX9286 for cameras), the MAX98357A does not require a dedicated kernel driver. It works as a raw I2S-to-analog converter and relies on the I2S interface itself, configured via ALSA and the SoC’s I2S driver.

The kernel has a driver for i2s:

sound/soc/sunxi/sun4i-i2s.c

It works for the h6 processor.
Try adding the line compatible = "allwinner,sun50i-h6-i2s"  to the DTS node so that the driver can be called.

This driver may also work for the h618.

 

Hi all

I2s work on orangepi zero 2w with the i2s0 pin, pi0, pi1, pi2, pi3 and pi4

You Need to apply an overlay to activated it on the device tree and choose some clock

 

I succeed to have sound with a Dac PCM5102A 

 

Cordialy

“Looks like I2S support for the H618 isn’t in the current overlays yet — you may need a custom DTB or wait for kernel updates. Checking mainline Linux patches for sun50i-h618-i2s could be the next step.”

Hi subhan 

i don't wait kernel update , i just use a script who create a user-overlay who enable the sound 

on the OPI zero 2w via HDMI , i2S via the 40 pin hat or jack connector via the expansion board and the µc is a H618

In fact the main board except for HDMI have no output for sound , so i think it's better to stay 

with a user-overlay ☺️

Edited by Totof le Belge

@Totof le Belge

Is there any chance you could give an in-depth explanation of the user-overlay script?

I'm trying to use a speaker that uses I2S with the GPIO pins.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

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.