summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2020-05-09 12:29:22 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2020-05-09 12:29:22 -0700
commitc8df7ada33d19859f3f4edf9df4cbdd7ff2ee891 (patch)
tree27e16f24442926b1db130e2805dc0e85d3a30a34
parentInitial commit (diff)
downloadpinebookpro-audio-c8df7ada33d19859f3f4edf9df4cbdd7ff2ee891.tar.xz
Synced to upstreamHEADmaster
-rw-r--r--PKGBUILD15
-rw-r--r--[-rwxr-xr-x]audio_jack_plugged_in.sh8
-rw-r--r--pinebookpro-audio.install8
-rw-r--r--pinebookpro-audio.service10
-rw-r--r--sync.sh17
5 files changed, 52 insertions, 6 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 8f3cd75..4622b22 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,19 +7,26 @@
pkgname=pinebookpro-audio
pkgver=1
-pkgrel=1
+pkgrel=2.2
pkgdesc="Pine64 Pinebook Pro - Audo Switch Audio Output"
#arch=('x86_64')
arch=('aarch64')
url="https://gitlab.manjaro.org/tsys/hpdet-pinebookpro"
license=('GPL')
depends=('acpid' 'alsa-utils')
+install=${pkgname}.install
source=("audio_jack_plugged_in"
- 'audio_jack_plugged_in.sh')
-md5sums=('03a8c88234b393f5b1c38e75ff68aa2a'
- '4d395caad54fb1718a503754c034ebc2')
+ "audio_jack_plugged_in.sh"
+ "sync.sh"
+ "pinebookpro-audio.service")
+b2sums=('b802737ab0cec94fe0417d9671b6301d888c2535fabe346fc5123bdf09e2d8ee5b7c0f0414b1dab04912e84805ce8b36e75c707533010d97b1792096cc9a6ad4'
+ '9820bf9e827f534e37f0dc4053e405dc36c08dedf3c3eb20bc97083f27af60975f5f4834233dec3d5bfb3778d047b61f6daf38aab3f1c237cd5a775c60f4d5c1'
+ '8e60ab4bfe47b689ac53666d0debb28123b893cf2d57a44b4127482a6fc91dc2387945fb63dead00e2a9bc281c07041b6b5c35edfb2299eff497cf0d5785337a'
+ '3ff0e93936656bda5e317b57e620073f8331b7d61cc6ec2dc2ce73fbf52c399b4fb778ef310afed79294f0c2eaa816911b781c7166cef5b461fc625175c905fa')
package() {
install -Dm644 "${srcdir}/audio_jack_plugged_in" -t "${pkgdir}/etc/acpi/events/"
install -Dm755 "${srcdir}/audio_jack_plugged_in.sh" -t "${pkgdir}/etc/acpi/"
+ install -Dm755 "${srcdir}/sync.sh" -t "${pkgdir}/usr/bin/"
+ install -Dm644 "${srcdir}/pinebookpro-audio.service" -t "${pkgdir}/usr/lib/systemd/system/"
}
diff --git a/audio_jack_plugged_in.sh b/audio_jack_plugged_in.sh
index c8277e7..af121a8 100755..100644
--- a/audio_jack_plugged_in.sh
+++ b/audio_jack_plugged_in.sh
@@ -1,6 +1,10 @@
#!/usr/bin/env sh
case "$3" in
- plug) amixer sset Speaker off ;;
- unplug) amixer sset Speaker on ;;
+plug)
+ amixer sset Speaker off
+ amixer sset 'Playback Polarity' Normal ;;
+ unplug)
+ amixer sset 'Playback Polarity' 'R Invert'
+ amixer sset Speaker on ;;
esac
diff --git a/pinebookpro-audio.install b/pinebookpro-audio.install
new file mode 100644
index 0000000..9008ab3
--- /dev/null
+++ b/pinebookpro-audio.install
@@ -0,0 +1,8 @@
+post_upgrade() {
+ echo "Enabling acpid ..."
+ systemctl enable --now acpid
+ echo "Restarting acpid ..."
+ systemctl restart acpid
+ echo "Enabling hpdet state sync at boot ..."
+ systemctl enable --now pinebookpro-audio.service
+}
diff --git a/pinebookpro-audio.service b/pinebookpro-audio.service
new file mode 100644
index 0000000..e1b09dd
--- /dev/null
+++ b/pinebookpro-audio.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Sync initial headphone plug state
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/sync.sh
+RemainAfterExit=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/sync.sh b/sync.sh
new file mode 100644
index 0000000..9a46879
--- /dev/null
+++ b/sync.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env sh
+
+set -e
+
+# Could get this from dt, fixed for now
+GPIO=8
+
+# Headphone detect gpios are exported by default
+value="$(cat /sys/class/gpio/gpio${GPIO}/value)"
+
+if [ "$value" -gt 0 ]; then
+ action=plug
+else
+ action=unplug
+fi
+
+/etc/acpi/audio_jack_plugged_in.sh jack/headphone HEADPHONE $action