From 0d5aff5161d0fb6f91bc9021f86065248cd8cd1b Mon Sep 17 00:00:00 2001 From: Petter Mabäcker Date: Sun, 28 Feb 2016 14:46:12 +0100 Subject: pitft: Add basic support for PiTFT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Andrei Gherzan --- README | 13 +++++++++++++ recipes-bsp/bootfiles/rpi-config_git.bb | 6 ++++-- .../xserver-xf86-config/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, 36 insertions(+), 5 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 3e879dd..129f5e2 100644 --- a/README +++ b/README @@ -28,6 +28,7 @@ Contents: 3.K. Device tree support 3.L. Enable SPI bus 3.M. Enable I2C + 3.N. Enable PiTFT support 4. Extra apps 4.A. omxplayer 5. Board Configuration @@ -213,6 +214,18 @@ ENABLE_SPI_BUS = "1" When using device tree kernels, set this variable to enable I2C ENABLE_I2C = "1" +3.N. 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= in config.txt) + 4. Extra apps ============= diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb index 138cb37..bfe00d1 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() { @@ -71,12 +73,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 5a8a175..4f59c97 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() { -- cgit v1.2.3-54-g00ecf