Skip to content

Commit

Permalink
Add Khadas VIM3 support (#84)
Browse files Browse the repository at this point in the history
* Add Khadas VIM3 support

Add sound configuration for Khadas VIM3. Currently only HDMI supported.
This requires access to device tree in sysfs.

* Add Khadas VIM3 specific config

* Add ODROID-N2 configuration for newer HAOS releases
  • Loading branch information
agners authored Apr 28, 2022
1 parent 1ebf3c8 commit 06fb96a
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 17 deletions.
43 changes: 26 additions & 17 deletions rootfs/usr/bin/soundconfig
Original file line number Diff line number Diff line change
Expand Up @@ -119,29 +119,38 @@ mixer $card 'Power Amplifier Mute' on
mixer $card Headphone 0db on
mixer $card 'AIF1 Slot 0 Digital DAC' on

# Amlogic G12 HDMI to PCM0
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 1'
mixer $card 'FRDDR_A SRC 1 EN' on
mixer $card 'TDMOUT_B SRC SEL' 'IN 0'
mixer $card 'TOHDMITX I2S SRC' 'I2S B'
mixer $card 'TOHDMITX' on

# Amlogic G12 DAC to PCM1
mixer $card 'FRDDR_B SINK 1 SEL' 'OUT 2'
mixer $card 'FRDDR_B SRC 1 EN' on
mixer $card 'TDMOUT_C SRC SEL' 'IN 1'
mixer $card 'TOACODEC SRC' 'I2S C'
mixer $card 'TOACODEC OUT EN' on
mixer $card 'ACODEC' 100%

# Amlogic GX HDMI and S/PDIF
mixer $card 'AIU HDMI CTRL SRC' 'I2S'
mixer $card 'AIU SPDIF SRC SEL' 'SPDIF'

case ${device_id} in
pcm5121sound)
pcm5121sound)
# Yellow - set Analogue Gain to -6dB for line-out circuit
mixer $card 'Analogue' 0
fi
;;
ODROIDN2)
# Amlogic G12 HDMI to PCM0
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 1'
mixer $card 'FRDDR_A SRC 1 EN' on
mixer $card 'TDMOUT_B SRC SEL' 'IN 0'
mixer $card 'TOHDMITX I2S SRC' 'I2S B'
mixer $card 'TOHDMITX' on

# Amlogic G12 DAC to PCM1
mixer $card 'FRDDR_B SINK 1 SEL' 'OUT 2'
mixer $card 'FRDDR_B SRC 1 EN' on
mixer $card 'TDMOUT_C SRC SEL' 'IN 1'
mixer $card 'TOACODEC SRC' 'I2S C'
mixer $card 'TOACODEC OUT EN' on
mixer $card 'ACODEC' 100%
;;
G12BKHADASVIM3)
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 0'
mixer $card 'FRDDR_A SRC 1 EN' on
mixer $card 'TDMOUT_A SRC SEL' 'IN 0'
mixer $card 'TOHDMITX' on
mixer $card 'TOHDMITX I2S SRC' 'I2S A'
;;
esac

exit 0
53 changes: 53 additions & 0 deletions rootfs/usr/share/alsa/cards/G12B-KHADAS-VIM3.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020 Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2020-present Home Assistant (https://home-assistant.io)

<confdir:pcm/hdmi.conf>

G12B-KHADAS-VIM3.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD { type string }
@args.AES0 { type integer }
@args.AES1 { type integer }
@args.AES2 { type integer }
@args.AES3 { type integer }
type hooks
slave.pcm {
type hw
card $CARD
device 0
subdevice 0
}
hooks.0 {
type ctl_elems
hook_args [
{
interface MIXER
name "IEC958 Playback Default"
lock true
preserve true
optional true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
hint.device 0
}

<confdir:pcm/front.conf>

G12B-KHADAS-VIM3.pcm.front.0 {
@args [ CARD ]
@args.CARD { type string }
type softvol
slave.pcm {
type hw
card $CARD
device 1
subdevice 0
}
control {
name "Onboard DAC output"
card $CARD
}
}
53 changes: 53 additions & 0 deletions rootfs/usr/share/alsa/cards/ODROID-N2.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020 Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2020-present Home Assistant (https://home-assistant.io)

<confdir:pcm/hdmi.conf>

ODROID-N2.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD { type string }
@args.AES0 { type integer }
@args.AES1 { type integer }
@args.AES2 { type integer }
@args.AES3 { type integer }
type hooks
slave.pcm {
type hw
card $CARD
device 0
subdevice 0
}
hooks.0 {
type ctl_elems
hook_args [
{
interface MIXER
name "IEC958 Playback Default"
lock true
preserve true
optional true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
hint.device 0
}

<confdir:pcm/front.conf>

ODROID-N2.pcm.front.0 {
@args [ CARD ]
@args.CARD { type string }
type softvol
slave.pcm {
type hw
card $CARD
device 1
subdevice 0
}
control {
name "Onboard DAC output"
card $CARD
}
}

0 comments on commit 06fb96a

Please sign in to comment.