summaryrefslogtreecommitdiff
path: root/recipes-support/usb-suspend-resume
diff options
context:
space:
mode:
authorSanchayan Maity <maitysanchayan@gmail.com>2016-03-03 19:49:15 +0530
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2016-03-14 14:26:27 +0100
commit9b09564e31ce67eaf97c85296e61eab1e4b0ada2 (patch)
treeed376de3bccb959561f45d5d6bf97ee6417090db /recipes-support/usb-suspend-resume
parentd8dccf09a4eb70748302e9969bfb737f059b86f7 (diff)
recipes-support: usb-suspend-resume: Add USB suspend resume fix for Vybrid
Add systemd service which utilises systemd's suspend resume hooks to excute scripts which take care of unbinding and binding the necessary configurations and usb driver during suspend and resume respectively. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Diffstat (limited to 'recipes-support/usb-suspend-resume')
-rw-r--r--recipes-support/usb-suspend-resume/files/usb-resume.service10
-rw-r--r--recipes-support/usb-suspend-resume/files/usb-resume.sh11
-rw-r--r--recipes-support/usb-suspend-resume/files/usb-suspend.service10
-rw-r--r--recipes-support/usb-suspend-resume/files/usb-suspend.sh2
-rw-r--r--recipes-support/usb-suspend-resume/usb-suspend-resume.bb37
5 files changed, 70 insertions, 0 deletions
diff --git a/recipes-support/usb-suspend-resume/files/usb-resume.service b/recipes-support/usb-suspend-resume/files/usb-resume.service
new file mode 100644
index 0000000..3bd9713
--- /dev/null
+++ b/recipes-support/usb-suspend-resume/files/usb-resume.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=User resume actions
+After=suspend.target
+
+[Service]
+Type=simple
+ExecStart=-/usr/bin/usb-resume.sh
+
+[Install]
+WantedBy=suspend.target
diff --git a/recipes-support/usb-suspend-resume/files/usb-resume.sh b/recipes-support/usb-suspend-resume/files/usb-resume.sh
new file mode 100644
index 0000000..2584813
--- /dev/null
+++ b/recipes-support/usb-suspend-resume/files/usb-resume.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/unbind
+echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/bind
+echo ci_hdrc.0 > /sys/bus/platform/drivers/ci_hdrc/unbind
+echo ci_hdrc.0 > /sys/bus/platform/drivers/ci_hdrc/bind
+/bin/sh -c '/bin/cat /proc/device-tree/model > \
+ /sys/kernel/config/usb_gadget/g1/strings/0x409/product'
+/bin/sh -c '/bin/cat /proc/device-tree/serial-number > \
+ /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber'
+/bin/sh -c '/bin/echo `ls /sys/class/udc/` > \
+ /sys/kernel/config/usb_gadget/g1/UDC'
diff --git a/recipes-support/usb-suspend-resume/files/usb-suspend.service b/recipes-support/usb-suspend-resume/files/usb-suspend.service
new file mode 100644
index 0000000..e56630d
--- /dev/null
+++ b/recipes-support/usb-suspend-resume/files/usb-suspend.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=User suspend actions
+Before=sleep.target
+
+[Service]
+Type=simple
+ExecStart=-/usr/bin/usb-suspend.sh
+
+[Install]
+WantedBy=sleep.target
diff --git a/recipes-support/usb-suspend-resume/files/usb-suspend.sh b/recipes-support/usb-suspend-resume/files/usb-suspend.sh
new file mode 100644
index 0000000..4a2df84
--- /dev/null
+++ b/recipes-support/usb-suspend-resume/files/usb-suspend.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "" > /sys/kernel/config/usb_gadget/g1/UDC
diff --git a/recipes-support/usb-suspend-resume/usb-suspend-resume.bb b/recipes-support/usb-suspend-resume/usb-suspend-resume.bb
new file mode 100644
index 0000000..d555b79
--- /dev/null
+++ b/recipes-support/usb-suspend-resume/usb-suspend-resume.bb
@@ -0,0 +1,37 @@
+SECTION = "USB"
+SUMMARY = "Fix for USB suspend resume on Vybrid"
+RDEPENDS_${PN} = ""
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PR = "r1"
+
+inherit allarch systemd
+
+SRC_URI = " \
+ file://usb-suspend.sh \
+ file://usb-resume.sh \
+ file://usb-suspend.service \
+ file://usb-resume.service \
+"
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/usb-suspend.sh ${D}/${bindir}/
+ install -m 0755 ${WORKDIR}/usb-resume.sh ${D}/${bindir}/
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/usb-suspend.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/usb-resume.service ${D}${systemd_unitdir}/system
+}
+
+FILES_${PN} += " \
+ ${systemd_unitdir}/system \
+"
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "usb-suspend.service usb-resume.service"
+SYSTEMD_AUTO_ENABLE_mx6 = "disable"
+SYSTEMD_AUTO_ENABLE_t30 = "disable"
+SYSTEMD_AUTO_ENABLE_t20 = "disable"