summaryrefslogtreecommitdiff
path: root/recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb')
-rw-r--r--recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb96
1 files changed, 96 insertions, 0 deletions
diff --git a/recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb b/recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb
new file mode 100644
index 0000000..09c8f4a
--- /dev/null
+++ b/recipes-bsp/multitech/mt-dt-overlay_1.1.1.bb
@@ -0,0 +1,96 @@
+DESCRIPTION = "Compile MT board device tree overlays"
+LICENSE = "(GPLv2+)"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit update-rc.d
+INITSCRIPT_NAME = "${PN}"
+# mt-dt-overlay must start before mts-io
+# because the gpio-leds driver will not load
+# after mts-io.
+INITSCRIPT_PARAMS = "start 39 S ."
+DEPENDS = "dtc-native linux-at91"
+RDEPENDS_${PN} = "bash"
+
+
+COMPATIBLE_MACHINE = "(mtcap|mtrv1|mtcdt)"
+
+# By using an overlay, we should be able to support multiple pinouts
+# using the same image. The overlays go into /lib/dtoverlays.
+# There names are: [hw-version]-driver.dtbo
+# e.g. /lib/dtoverlays/MTRV1-0.0-pps.dtbo
+# The idea is that mts-io will search for the overlays, and install the
+# appropriate device tree overlay for the current hw-version.
+
+dt_dir = "/lib/dtoverlays"
+
+PR = "r3"
+
+SRC_URI = " \
+ git://git.multitech.net/mt-dt-overlay.git;protocol=git \
+ file://init \
+"
+
+SRCREV = "${PV}"
+
+DEPENDS = "virtual/kernel u-boot-mkimage-native"
+
+S = "${WORKDIR}/git"
+
+do_compile[depends] += "virtual/kernel:do_deploy virtual/kernel:do_shared_workdir"
+do_compile[nostamp] = "1"
+
+# Make sure we are using the Yocto version of DTC, not what is installed in /usr/bin
+DTC_BIN_DIR = "${COMPONENTS_DIR}/x86_64/dtc-native/usr/bin"
+
+do_compile () {
+ echo MACHINE is ${MACHINE}
+ oe_runmake DTC=${DTC_BIN_DIR}/dtc KERNEL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${KERNEL_PATH} ${MACHINE}_dtbos
+}
+
+FILES_${PN} = "${dt_dir} ${sysconfdir}"
+
+addtask install after do_compile
+
+# The destination and any symlinks are defined in the source file.
+#
+# A line starting as follows " * Put: [destination]" in the source
+# defines the destination file name for the device tree binaries.
+#
+# A line starting as follows " * Link: [destination]" defines a symlink
+# to the device tree binary file.
+#
+do_install () {
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/${PN}
+ # Copy files to /lib/dt-overlay/main (mtac cards will be in mtac)
+ if [ -e ${AT91BOOTSTRAP_MACHINE} ]; then
+ install -d ${D}/${dt_dir}
+ (
+ cd ${MACHINE}
+ echo "Current directory is $(pwd)"
+ for f in *.dtbo ; do
+ s=$(basename -s .dtbo $f).dtso
+ location_ln=$(egrep '^[[:space:]]*\*[[:space:]]*Put:[[:space:]]*[^[:space:]]+' $s | sed -r 's/.*Put:[[:space:]]*//')
+ echo "Binary: $f Source: $s"
+ echo "Destination: $location_ln"
+ dirname=$(dirname $location_ln)
+ install -d ${D}/${dt_dir}/$dirname
+ install ${f} ${D}/${dt_dir}/$location_ln
+ links=$(egrep '^[[:space:]]*\*[[:space:]]*Link:[[:space:]]*[^[:space:]]+' $s | sed -r 's/.*Link:[[:space:]]*//')
+ echo "All Links: "
+ echo "$links"
+ echo "End links"
+ for l in $links ; do
+ ldirname=$(dirname $l)
+ if ! [ -d "${D}/$ldirname" ] ; then
+ install -d ${D}/${dt_dir}/$ldirname
+ fi
+ echo ln -sf ${dt_dir}/$dirname/$f ${D}/${dt_dir}/$l
+ ln -sf ${dt_dir}/$location_ln ${D}/${dt_dir}/$l
+ done
+ done
+ )
+ fi
+}
+