[yocto] [meta-raspberrypi][PATCH v3 5/6] pitft: Add basic support for PiTFT
Petter Mabäcker
petter at technux.se
Sun Feb 28 05:46:12 PST 2016
Add basic support for PiTFT display by using device-trees.
In order get it working below configurations must be active in
local.conf:
MACHINE_FEATURES += "pitft"
- This will enable SPI bus and i2c device-trees, it will also setup
framebuffer for console and x server on PiTFT.
[Support #70]
Signed-off-by: Petter Mabäcker <petter at technux.se>
---
README | 29 ++++++++++++++++------
recipes-bsp/bootfiles/rpi-config_git.bb | 6 +++--
.../rpi/xorg.conf.d/99-pitft.conf | 5 ++++
.../xorg-xserver/xserver-xf86-config_0.1.bbappend | 11 ++++++--
recipes-kernel/linux/linux-raspberrypi.inc | 6 ++++-
5 files changed, 44 insertions(+), 13 deletions(-)
create mode 100644 recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf
diff --git a/README b/README
index 8ef4e7a..6a6c398 100644
--- a/README
+++ b/README
@@ -22,10 +22,11 @@ Contents:
2.H. Optional - Enable kgdb over console support
2.I. Optional - Enable SPI bus
2.J. Optional - Enable I2C
- 2.K. Images
- 2.L. Boot to U-Boot
- 2.M. Image with Initramfs
- 2.N. Device tree support
+ 2.K. Optional - Enable PiTFT support
+ 2.L. Images
+ 2.M. Boot to U-Boot
+ 2.N. Image with Initramfs
+ 2.O. Device tree support
3. Extra apps
3.A. omxplayer
4. Source code and mirrors
@@ -157,7 +158,19 @@ ENABLE_SPI_BUS = "1"
When using device tree kernels, set this variable to enable I2C
ENABLE_I2C = "1"
-2.K. Images
+2.K. Optional - Enable PiTFT support
+====================================
+Basic support for using PiTFT screens can be enabled by adding
+below in local.conf:
+
+MACHINE_FEATURES += "pitft"
+ - This will enable SPI bus and i2c device-trees, it will also setup
+ framebuffer for console and x server on PiTFT.
+
+NOTE: To get this working the overlay for the PiTFT model must be build,
+ added and specified as well (dtoverlay=<driver> in config.txt)
+
+2.L. Images
===========
* rpi-hwup-image
Hardware up image
@@ -167,7 +180,7 @@ ENABLE_I2C = "1"
Image based on rpi-basic-image which includes most of the packages in this
layer and some media samples.
-2.L. Boot to U-Boot
+2.M. Boot to U-Boot
===================
To have u-boot load kernel image, set in your local.conf
KERNEL_IMAGETYPE = "uImage"
@@ -175,7 +188,7 @@ KERNEL_IMAGETYPE = "uImage"
This will make kernel.img be u-boot image which will load uImage.
By default, kernel.img is the actual kernel image (ex. Image).
-2.M. Image with Initramfs
+2.N. Image with Initramfs
=========================
To build an initramfs image :
* Set this 3 kernel variables (in linux-raspberrypi.inc for example)
@@ -188,7 +201,7 @@ To build an initramfs image :
* Set the meta-rasberrypi variable (in raspberrypi.conf for example)
- KERNEL_INITRAMFS = "-initramfs"
-2.N. Device tree support
+2.O. Device tree support
=========================
Device tree for RPi is only supported when using linux-raspberrypi 3.18+
kernels.
diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb
index ccb9b7f..236a359 100644
--- a/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -15,6 +15,8 @@ S = "${WORKDIR}/git"
PR = "r4"
+PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
+
inherit deploy
do_deploy() {
@@ -68,12 +70,12 @@ do_deploy() {
fi
# SPI bus support
- if [ -n "${ENABLE_SPI_BUS}" ]; then
+ if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
- if [ -n "${ENABLE_I2C}" ]; then
+ if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf b/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf
new file mode 100644
index 0000000..0d2b36b
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf
@@ -0,0 +1,5 @@
+Section "Device"
+ Identifier "Adafruit PiTFT"
+ Driver "fbdev"
+ Option "fbdev" "/dev/fb1"
+EndSection
diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
index 2cf40f8..0ae2ee0 100644
--- a/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
+++ b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
@@ -1,10 +1,17 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI_append_rpi = " file://xorg.conf.d/10-evdev.conf "
+SRC_URI_append_rpi = " file://xorg.conf.d/10-evdev.conf \
+ file://xorg.conf.d/99-pitft.conf \
+ "
do_install_append_rpi () {
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
- install -m 0644 ${WORKDIR}/xorg.conf.d/* ${D}/${sysconfdir}/X11/xorg.conf.d/
+ install -m 0644 ${WORKDIR}/xorg.conf.d/10-evdev.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
+
+ PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
+ if [ "${PITFT}" = "1" ]; then
+ install -m 0644 ${WORKDIR}/xorg.conf.d/99-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
+ fi
}
FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc
index 8c7c46c..e31270d 100644
--- a/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/recipes-kernel/linux/linux-raspberrypi.inc
@@ -53,7 +53,11 @@ do_install_prepend() {
do_deploy_append() {
# Deploy cmdline.txt
install -d ${DEPLOYDIR}/bcm2835-bootfiles
- echo "${CMDLINE}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
+ PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
+ if [ ${PITFT} = "1" ]; then
+ PITFT_PARAMS="fbcon=map:10 fbcon=font:VGA8x8"
+ fi
+ echo "${CMDLINE}${PITFT_PARAMS}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
}
do_rpiboot_mkimage() {
--
1.9.1
More information about the yocto
mailing list