meta-openembedded/meta-oe/classes/panel-mipi-dbi.bbclass
Leonard Göhrs 08934d75ae
panel-mipi-dbi.bbclass: initial addition of the firmware blob class
The `panel-mipi-dbi.bbclass` can be used to build a firmware file for use
with the `panel-mipi-dbi` Linux driver.

The class uses the `mipi-dbi-cmd` from `panel-mipi-dbi-native` to
assemble a human readable list of init commands into a firmware file
for use with the `panel-mipi-dbi` Linux driver.

Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-11-01 06:43:16 -07:00

49 lines
1.2 KiB
Plaintext

# SPDX-License-Identifier: MIT
#
# Copyright Pengutronix <yocto@pengutronix.de>
#
# Class to generate firmware files for use with the `panel-mipi-dbi` Linux
# driver.
#
# The firmware source file contains a list of commands to send to the display
# controller in order to initialize it:
#
# $ cat shineworld,lh133k.txt
# command 0x11 # exit sleep mode
# delay 120
#
# # Enable color inversion
# command 0x21 # INVON
# ...
#
# A recipe to compile such a command list into a firmware blob for use with
# the `panel-mipi-dbi` driver looks something like this:
#
# $ cat panel-shineworld-lh133k.bb
# inherit panel-mipi-dbi
#
# SRC_URI = "file://${PANEL_FIRMWARE}"
#
# PANEL_FIRMWARE = "shineworld,lh133k.txt"
# ...
DEPENDS = "panel-mipi-dbi-native"
PANEL_FIRMWARE_BIN ?= "${@d.getVar('PANEL_FIRMWARE').removesuffix('.txt')}.bin"
do_configure[noexec] = "1"
do_compile () {
mipi-dbi-cmd \
"${B}/${PANEL_FIRMWARE_BIN}" \
"${UNPACKDIR}/${PANEL_FIRMWARE}"
}
do_install () {
install -m 0644 -D \
"${B}/${PANEL_FIRMWARE_BIN}" \
"${D}${nonarch_base_libdir}/firmware/${PANEL_FIRMWARE_BIN}"
}
FILES:${PN} = "${nonarch_base_libdir}/firmware/"