linux/sound/pci/oxygen
Ferus Castor af31e980de ALSA: oxygen: add HT-Omega eClaro (7284:9783) support
The HT-Omega eClaro is a PCI sound card built on the C-Media CMI8788
(Oxygen HD) controller, with PCI subsystem ID 7284:9783.

Output hardware:
 - AK4396VF stereo DAC: front L/R output, connected via SPI CE0
 - CS4362A 6-channel DAC: surround, center/LFE, and side outputs,
   connected via SPI CE1 with a 3-byte [0x30, reg, val] frame

The CS4362A uses inverse attenuation encoding (0 = 0 dB, 127 = max
attenuation) and a 0.5 dB/step logarithmic scale. Volume TLV is set
to TLV_DB_SCALE(-6350, 50, 0) to match the hardware. The channel-to-
register mapping was verified by listening test:
 - Pair 1 (regs 7/8):   side L/R   (ALSA channels 6/7)
 - Pair 2 (regs 10/11): center/LFE (ALSA channels 4/5)
 - Pair 3 (regs 13/14): rear L/R   (ALSA channels 2/3)

Input hardware:
 - CS5361 stereo ADC: Line In and Mic In capture

GPIO assignments:
 - GPIO 0 (0x0001): CS4362A RESET# (active-low, driven high)
 - GPIO 2/3:        CS5361 M0/M1 (sample rate mode)
 - GPIO 5 (0x0020): front output stage enable (driven high)
 - GPIO 8 (0x0100): headphone amplifier enable

Signed-off-by: Ferus Castor <feruscastor@proton.me>
Assisted-by: Claude:claude-sonnet-4-6
Link: https://patch.msgid.link/20260601015848.128566-1-feruscastor@proton.me
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-06-02 08:24:06 +02:00
..
ak4396.h
cm9780.h
cs2000.h
cs4245.h
cs4362a.h
cs4398.h
Makefile ALSA: pci: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:37 +02:00
oxygen_io.c
oxygen_lib.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
oxygen_mixer.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
oxygen_pcm.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
oxygen_regs.h
oxygen.c ALSA: oxygen: add HT-Omega eClaro (7284:9783) support 2026-06-02 08:24:06 +02:00
oxygen.h ALSA: oxygen: Convert to EXPORT_SIMPLE_DEV_PM_OPS() 2025-03-14 11:07:13 +01:00
pcm1796.h
se6x.c ALSA: oxygen: Fix dependency on CONFIG_PM_SLEEP 2025-03-20 11:59:02 +01:00
virtuoso.c ALSA: oxygen: Fix dependency on CONFIG_PM_SLEEP 2025-03-20 11:59:02 +01:00
wm8766.h
wm8776.h
wm8785.h
xonar_cs43xx.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
xonar_dg_mixer.c ALSA: oxygen: Use guard() for mutex locks 2025-09-01 13:52:42 +02:00
xonar_dg.c
xonar_dg.h
xonar_hdmi.c
xonar_lib.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
xonar_pcm179x.c ALSA: oxygen: Use guard() for spin locks 2025-09-01 13:52:42 +02:00
xonar_wm87x6.c ALSA: oxygen: Use guard() for mutex locks 2025-09-01 13:52:42 +02:00
xonar.h