opi900: fix es8388 audio

This commit is contained in:
orangepi-xunlong
2023-06-14 21:09:48 +08:00
parent a2713f5075
commit d327f215fc
4 changed files with 72 additions and 4 deletions

View File

@@ -100,6 +100,19 @@ prepare_board() {
orangepi5|orangepi5b|orangepi5plus|orangepitab|orangepi900)
[[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode
if [[ $BOARD =~ orangepi900 ]]; then
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
jack_num=$(tinymix -D ${es8388_card} | grep "Headphone Jack" | cut -c1-2)
if [[ $(tinymix -D ${es8388_card} $jack_num | cut -d ":" -f 2) == *On ]]; then
tinymix -D ${es8388_card} 25 2
tinymix -D ${es8388_card} 27 2
else
tinymix -D ${es8388_card} 25 0
tinymix -D ${es8388_card} 27 0
fi
fi
if [[ -c /dev/mpp_service ]]; then
chmod 0666 /dev/mpp_service

View File

@@ -0,0 +1 @@
ACTION=="change", SUBSYSTEM=="extcon", ATTR{name}=="es8388-sound", RUN+="/usr/bin/orangepi_audio.sh"

View File

@@ -0,0 +1,40 @@
#!/bin/bash
source /etc/orangepi-release
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
jack_num=$(tinymix -D ${es8388_card} | grep "Headphone Jack" | cut -c1-2)
[[ ${BOARD} != orangepi900 ]] && exit
if [[ $(tinymix -D ${es8388_card} $jack_num | cut -d ":" -f 2) == *On ]]; then
#for playback
tinymix -D ${es8388_card} 25 2
tinymix -D ${es8388_card} 27 2
#for capture
tinymix -D ${es8388_card} 35 0
tinymix -D ${es8388_card} 36 0
tinymix -D ${es8388_card} 37 0
else
#for playback
tinymix -D ${es8388_card} 25 0
tinymix -D ${es8388_card} 27 0
#for capture
tinymix -D ${es8388_card} 35 1
tinymix -D ${es8388_card} 36 1
tinymix -D ${es8388_card} 37 1
fi
tinymix -D ${es8388_card} 3 4
tinymix -D ${es8388_card} 4 2
tinymix -D ${es8388_card} 14 192
tinymix -D ${es8388_card} 16 4
tinymix -D ${es8388_card} 17 4
tinymix -D ${es8388_card} 23 30
tinymix -D ${es8388_card} 24 30

View File

@@ -7,6 +7,8 @@ else
exit
fi
source /etc/orangepi-release
card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
hdmi0_card=$(aplay -l | grep "hdmi0" | cut -d ':' -f 1 | cut -d ' ' -f 2)
@@ -15,22 +17,34 @@ if [[ $type == "main" ]]; then
tinymix -D $card 3 4
tinymix -D $card 4 2
tinymix -D $card 14 192
tinymix -D $card 16 0
tinymix -D $card 17 0
tinymix -D $card 16 4
tinymix -D $card 17 4
if [[ ${BOARD} == orangepi900 ]]; then
tinymix -D $card 35 1
tinymix -D $card 36 1
tinymix -D $card 37 1
else
tinymix -D $card 31 1
tinymix -D $card 32 1
tinymix -D $card 33 1
fi
else
tinymix -D $card 3 2
tinymix -D $card 4 1
tinymix -D $card 14 192
tinymix -D $card 16 0
tinymix -D $card 17 0
tinymix -D $card 16 4
tinymix -D $card 17 4
if [[ ${BOARD} == orangepi900 ]]; then
tinymix -D $card 35 0
tinymix -D $card 36 0
tinymix -D $card 37 0
else
tinymix -D $card 31 0
tinymix -D $card 32 0
tinymix -D $card 33 0
fi
fi