* Add a package that will run ts_calibrate if needed.  This
  will allow separating this logic from the matrix init script
  since it is not always needed and allow others to use it for
  their own systems without requiring matrix.

Signed-off-by: Chase Maupin <[email protected]>
---
 .../recipes-graphics/tslib/ts-calibrate-init/init  |   50 ++++++++++++++++++++
 .../tslib/ts-calibrate-init_1.0.bb                 |   29 +++++++++++
 2 files changed, 79 insertions(+), 0 deletions(-)
 create mode 100644 
meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init/init
 create mode 100644 
meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init_1.0.bb

diff --git a/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init/init 
b/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init/init
new file mode 100644
index 0000000..26ea581
--- /dev/null
+++ b/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init/init
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Copyright (C) {2013} Texas Instruments Incorporated - http://www.ti.com/
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation version 2.
+#
+# This program is distributed "as is" WITHOUT ANY WARRANTY of any
+# kind, whether express or implied; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+tsfile=/etc/pointercal
+
+# First let's check if we even see a touchscreen device node.  If not
+# then bail out.
+if [ ! -e /dev/input/touchscreen0 ]
+then
+    exit
+fi
+
+# Check if the SD card is mounted and the first partition is
+# vfat.  If so let's write the pointercal file there so that if
+# someone messes up calibration they can just delete the file from
+# any system and reboot the board.
+
+#TODO how can we find the SD card and not eMMC?  can we look for a "boot"
+# LABEL?
+mount | grep /media/mmcblk0p1 | grep vfat > /dev/null 2>&1
+if [ "$?" = "0" ]
+then
+    tsfile=/media/mmcblk0p1/pointercal
+    export TSLIB_CALIBFILE=$tsfile
+fi
+
+if [ ! -f $tsfile ] ; then
+    echo -n "Calibrating touchscreen (first time only)"
+    ts_calibrate
+    echo "."
+
+    # If we create a pointercal file and it was not in /etc/pointercal
+    # let's copy it there as well if it does not already exist.  This is so
+    # that running other applications that look for /etc/pointercal and
+    # without TSLIB_CALIBFILE set will still get the right calibration.
+    # TODO: can we just globally export TSLIB_CALIBFILE?
+    if [ ! -f /etc/pointercal -a -f $tsfile ]
+    then
+        cp $tsfile /etc/pointercal
+    fi
+fi
diff --git a/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init_1.0.bb 
b/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init_1.0.bb
new file mode 100644
index 0000000..7fdbc26
--- /dev/null
+++ b/meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init_1.0.bb
@@ -0,0 +1,29 @@
+# This recipe installs an init script that can be used to invoke ts_calibrate
+# on systems that need this done during the boot sequence.
+DESCRIPTION = "TS calibration init script"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = 
"file://init;beginline=2;endline=11;md5=4b2e3b15f01cf63d2cb7988afdcc6c60"
+
+PR = "r0"
+
+S = "${WORKDIR}"
+
+INITSCRIPT_NAME = "ts-calibrate"
+
+# Start this init script early enough for other processes to be started later
+# in the init sequence
+INITSCRIPT_PARAMS = "start 96 2 3 4 5 ."
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit update-rc.d
+
+SRC_URI = "file://init"
+
+do_install(){
+       # Install the init script
+       # TODO: replace init script with systemd files
+       install -d ${D}${sysconfdir}/init.d
+       install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/ts-calibrate
+}
-- 
1.7.0.4

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to