Skip to content

Commit 06fb96a

Browse files
authored
Add Khadas VIM3 support (#84)
* 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
1 parent 1ebf3c8 commit 06fb96a

3 files changed

Lines changed: 132 additions & 17 deletions

File tree

rootfs/usr/bin/soundconfig

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -119,29 +119,38 @@ mixer $card 'Power Amplifier Mute' on
119119
mixer $card Headphone 0db on
120120
mixer $card 'AIF1 Slot 0 Digital DAC' on
121121

122-
# Amlogic G12 HDMI to PCM0
123-
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 1'
124-
mixer $card 'FRDDR_A SRC 1 EN' on
125-
mixer $card 'TDMOUT_B SRC SEL' 'IN 0'
126-
mixer $card 'TOHDMITX I2S SRC' 'I2S B'
127-
mixer $card 'TOHDMITX' on
128-
129-
# Amlogic G12 DAC to PCM1
130-
mixer $card 'FRDDR_B SINK 1 SEL' 'OUT 2'
131-
mixer $card 'FRDDR_B SRC 1 EN' on
132-
mixer $card 'TDMOUT_C SRC SEL' 'IN 1'
133-
mixer $card 'TOACODEC SRC' 'I2S C'
134-
mixer $card 'TOACODEC OUT EN' on
135-
mixer $card 'ACODEC' 100%
136-
137122
# Amlogic GX HDMI and S/PDIF
138123
mixer $card 'AIU HDMI CTRL SRC' 'I2S'
139124
mixer $card 'AIU SPDIF SRC SEL' 'SPDIF'
140125

141126
case ${device_id} in
142-
pcm5121sound)
127+
pcm5121sound)
143128
# Yellow - set Analogue Gain to -6dB for line-out circuit
144129
mixer $card 'Analogue' 0
145-
fi
130+
;;
131+
ODROIDN2)
132+
# Amlogic G12 HDMI to PCM0
133+
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 1'
134+
mixer $card 'FRDDR_A SRC 1 EN' on
135+
mixer $card 'TDMOUT_B SRC SEL' 'IN 0'
136+
mixer $card 'TOHDMITX I2S SRC' 'I2S B'
137+
mixer $card 'TOHDMITX' on
138+
139+
# Amlogic G12 DAC to PCM1
140+
mixer $card 'FRDDR_B SINK 1 SEL' 'OUT 2'
141+
mixer $card 'FRDDR_B SRC 1 EN' on
142+
mixer $card 'TDMOUT_C SRC SEL' 'IN 1'
143+
mixer $card 'TOACODEC SRC' 'I2S C'
144+
mixer $card 'TOACODEC OUT EN' on
145+
mixer $card 'ACODEC' 100%
146+
;;
147+
G12BKHADASVIM3)
148+
mixer $card 'FRDDR_A SINK 1 SEL' 'OUT 0'
149+
mixer $card 'FRDDR_A SRC 1 EN' on
150+
mixer $card 'TDMOUT_A SRC SEL' 'IN 0'
151+
mixer $card 'TOHDMITX' on
152+
mixer $card 'TOHDMITX I2S SRC' 'I2S A'
153+
;;
154+
esac
146155

147156
exit 0
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Copyright (C) 2020 Team LibreELEC (https://libreelec.tv)
3+
# Copyright (C) 2020-present Home Assistant (https://home-assistant.io)
4+
5+
<confdir:pcm/hdmi.conf>
6+
7+
G12B-KHADAS-VIM3.pcm.hdmi.0 {
8+
@args [ CARD AES0 AES1 AES2 AES3 ]
9+
@args.CARD { type string }
10+
@args.AES0 { type integer }
11+
@args.AES1 { type integer }
12+
@args.AES2 { type integer }
13+
@args.AES3 { type integer }
14+
type hooks
15+
slave.pcm {
16+
type hw
17+
card $CARD
18+
device 0
19+
subdevice 0
20+
}
21+
hooks.0 {
22+
type ctl_elems
23+
hook_args [
24+
{
25+
interface MIXER
26+
name "IEC958 Playback Default"
27+
lock true
28+
preserve true
29+
optional true
30+
value [ $AES0 $AES1 $AES2 $AES3 ]
31+
}
32+
]
33+
}
34+
hint.device 0
35+
}
36+
37+
<confdir:pcm/front.conf>
38+
39+
G12B-KHADAS-VIM3.pcm.front.0 {
40+
@args [ CARD ]
41+
@args.CARD { type string }
42+
type softvol
43+
slave.pcm {
44+
type hw
45+
card $CARD
46+
device 1
47+
subdevice 0
48+
}
49+
control {
50+
name "Onboard DAC output"
51+
card $CARD
52+
}
53+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Copyright (C) 2020 Team LibreELEC (https://libreelec.tv)
3+
# Copyright (C) 2020-present Home Assistant (https://home-assistant.io)
4+
5+
<confdir:pcm/hdmi.conf>
6+
7+
ODROID-N2.pcm.hdmi.0 {
8+
@args [ CARD AES0 AES1 AES2 AES3 ]
9+
@args.CARD { type string }
10+
@args.AES0 { type integer }
11+
@args.AES1 { type integer }
12+
@args.AES2 { type integer }
13+
@args.AES3 { type integer }
14+
type hooks
15+
slave.pcm {
16+
type hw
17+
card $CARD
18+
device 0
19+
subdevice 0
20+
}
21+
hooks.0 {
22+
type ctl_elems
23+
hook_args [
24+
{
25+
interface MIXER
26+
name "IEC958 Playback Default"
27+
lock true
28+
preserve true
29+
optional true
30+
value [ $AES0 $AES1 $AES2 $AES3 ]
31+
}
32+
]
33+
}
34+
hint.device 0
35+
}
36+
37+
<confdir:pcm/front.conf>
38+
39+
ODROID-N2.pcm.front.0 {
40+
@args [ CARD ]
41+
@args.CARD { type string }
42+
type softvol
43+
slave.pcm {
44+
type hw
45+
card $CARD
46+
device 1
47+
subdevice 0
48+
}
49+
control {
50+
name "Onboard DAC output"
51+
card $CARD
52+
}
53+
}

0 commit comments

Comments
 (0)