summaryrefslogtreecommitdiff
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
commit4eb2bbe43a53d453787a2cf5a85a565345233705 (patch)
tree0cbcf6ac8c95cc1505a5a29176d8b7ff01db53fa
parent21860b7990513471b84621b055c25473e9290307 (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>
-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"