Skip to content

feat: Add aw87xxx codec for AyaNeo/Ayn/Orange Pi handheld speaker amplifiers - #102

Open
hijae wants to merge 2 commits into
OpenGamingCollective:features/ayaneofrom
hijae:add-aw87xxx-flip-speaker
Open

feat: Add aw87xxx codec for AyaNeo/Ayn/Orange Pi handheld speaker amplifiers#102
hijae wants to merge 2 commits into
OpenGamingCollective:features/ayaneofrom
hijae:add-aw87xxx-flip-speaker

Conversation

@hijae

@hijae hijae commented Aug 25, 2026

Copy link
Copy Markdown

Context

Several handhelds (AyaNeo Flip KB/DS, AIR 1S, AIR Plus, Kun; Ayn Loki MiniPro; Orange Pi NEO-01) use the Awinic AW87XXX Smart K PA as their speaker amplifier, identified over ACPI as AWDZ8830. Mainline Linux has no driver for this chip — the closest match (aw87390.c) doesn't recognize it. Without this driver these devices have no speaker output at all.

This driver was lost when Bazzite's kernel source switched to OGC, unrelated to the driver itself. Ported here referencing ChimeraOS's kernel, which carries the same driver. See ublue-os/bazzite#5374 for the resulting regression report (AyaNeo AIR 1S, no audio since the kernel switch).

Changes

  • First commit: the original driver + DMI-based firmware filename selection, ported from hhd-dev/patchwork with attribution preserved.
  • Second commit: drop a dead linux/of_gpio.h include (header no longer exists in this tree) so it builds on current kernels.

Testing

Built out-of-tree against this branch's exact source (kernel-devel 7.2.0-ogc4.1) and verified on real AyaNeo Flip KB hardware — chip probes correctly (chip_id 0x5a, product aw87559), and speaker audio works, including after a fresh reboot.

CVMagic and others added 2 commits August 25, 2026 15:24
…re selection

Adds the Awinic AW87XXX Smart K PA codec driver, ported from
hhd-dev/patchwork. This chip is used as the speaker amplifier on
several handhelds (AyaNeo Flip KB/DS, AIR 1S, AIR Plus, Kun; Ayn
Loki MiniPro; Orange Pi NEO-01 per the DMI match table below),
none of which currently have audio output without this driver.
Verified on AyaNeo Flip KB.

Includes DMI-based firmware filename selection so multiple devices'
firmware blobs can coexist under /lib/firmware without collision.

Co-developed-by: bouhaa <boukehaarsma23@gmail.com>
Co-developed-by: Antheas Kapenekakis <git@antheas.dev>
Signed-off-by: Hijae Song <hijae@naver.com>
linux/of_gpio.h has been removed from the tree. None of these
files actually use anything from it (no of_gpio_* calls), so drop
the dead include to fix the build.

Signed-off-by: Hijae Song <hijae@naver.com>
@hijae

hijae commented Aug 25, 2026

Copy link
Copy Markdown
Author

Companion PR enabling this in the build config: OpenGamingCollective/kernel-packages#36CONFIG_SND_SOC_AW87XXX isn't on by default, so without that PR this driver is present but never actually built.

@pastaq

pastaq commented Aug 25, 2026

Copy link
Copy Markdown
Member

Are we planning to upstream this, or rework it before hand? Authorship makes it somewhat of a challenge.
@BoukeHaarsma23 I would love your input here.

KyleGospo pushed a commit to OpenGamingCollective/kernel-packages that referenced this pull request Aug 25, 2026
CONFIG_SND_SOC_AW87XXX is added by OpenGamingCollective/linux#102.
Enable it as a module so it's actually built.

Signed-off-by: Hijae Song <hijae@naver.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants