Skip to content

MacBook Air M1 (j313): cs42l83 headphone codec fails I2C device-ID read (-6/ENXIO) after loading cs42l83-i2c #596

Description

@kishan-2007

System info:

  • Device: MacBook Air (M1, 2020) — device class j313ap, product type MacBookAir10,1
  • Distro: Ubuntu Asahi (Ubuntu Desktop 26.04)
  • Kernel: 7.0.0-1002-asahi-arm
  • RAM: 8GB

Summary:
On fresh install, no audio playback device is present (aplay -l returns empty). Kernel log shows the machine driver stuck waiting on the headphone jack codec:

platform sound: deferred probe pending: snd-soc-macaudio: parsing CODEC DAI of link 'Headphone Jack' at /sound/dai-link@1/codec

Devicetree inspection (dtc -I fs -O dts /proc/device-tree) shows the codec node correctly identifies as:

codec@48 {
    interrupts = <0xb7 0x08>;
    interrupt-parent = <0x3f>;
    #sound-dai-cells = <0x00>;
    reset-gpios = <0x4b 0x0b 0x00>;
    sound-name-prefix = "Jack";
    compatible = "cirrus,cs42l83";
    reg = <0x48>;
    cirrus,ts-inv = <0x01>;
    phandle = <0xbf>;
};

Root cause identified: the kernel ships a snd_soc_cs42l84 module by default, whose driver only matches compatible = "cirrus,cs42l84" — it does not match cs42l83, so it never even attempts to bind (zero related dmesg output).

After manually loading the correct driver:

sudo modprobe snd_soc_cs42l83_i2c

The correct module (snd-soc-cs42l83-i2c, confirmed present at /lib/modules/$(uname -r)/kernel/sound/soc/codecs/snd-soc-cs42l83-i2c.ko.zst) does bind to the device, but fails at the ID-read stage:

[    2.791242] cs42l83 0-0048: supply VA not found, using dummy regulator
[    2.801979] cs42l83 0-0048: supply VP not found, using dummy regulator
[    2.822129] cs42l83 0-0048: supply VCP not found, using dummy regulator
[    2.856673] cs42l83 0-0048: supply VD_FILT not found, using dummy regulator
[    2.857329] cs42l83 0-0048: supply VL not found, using dummy regulator
[    2.865112] cs42l83 0-0048: Failed to read device ID: -6

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions