From d327f215fcb27dd1dcc4b09482343f6e8a4138f1 Mon Sep 17 00:00:00 2001 From: orangepi-xunlong <258384131@qq.com> Date: Wed, 14 Jun 2023 21:09:48 +0800 Subject: [PATCH] opi900: fix es8388 audio --- .../orangepi/orangepi-hardware-optimization | 13 ++++++ .../etc/udev/rules.d/84-audio-orangepi.rules | 1 + .../bsp/rk3588/usr/bin/orangepi_audio.sh | 40 +++++++++++++++++++ .../bsp/rk3588/usr/local/bin/test_record.sh | 22 ++++++++-- 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 external/packages/bsp/rk3588/etc/udev/rules.d/84-audio-orangepi.rules create mode 100755 external/packages/bsp/rk3588/usr/bin/orangepi_audio.sh diff --git a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization index 1ea8feb..4ad4278 100755 --- a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization +++ b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization @@ -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 diff --git a/external/packages/bsp/rk3588/etc/udev/rules.d/84-audio-orangepi.rules b/external/packages/bsp/rk3588/etc/udev/rules.d/84-audio-orangepi.rules new file mode 100644 index 0000000..330bd45 --- /dev/null +++ b/external/packages/bsp/rk3588/etc/udev/rules.d/84-audio-orangepi.rules @@ -0,0 +1 @@ +ACTION=="change", SUBSYSTEM=="extcon", ATTR{name}=="es8388-sound", RUN+="/usr/bin/orangepi_audio.sh" diff --git a/external/packages/bsp/rk3588/usr/bin/orangepi_audio.sh b/external/packages/bsp/rk3588/usr/bin/orangepi_audio.sh new file mode 100755 index 0000000..0a28bc9 --- /dev/null +++ b/external/packages/bsp/rk3588/usr/bin/orangepi_audio.sh @@ -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 diff --git a/external/packages/bsp/rk3588/usr/local/bin/test_record.sh b/external/packages/bsp/rk3588/usr/local/bin/test_record.sh index d6d2ff2..65b2ca9 100755 --- a/external/packages/bsp/rk3588/usr/local/bin/test_record.sh +++ b/external/packages/bsp/rk3588/usr/local/bin/test_record.sh @@ -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