[yocto] [meta-raspberrypi][PATCH v3 5/6] pitft: Add basic support for PiTFT
Andrei Gherzan
andrei at gherzan.ro
Tue Mar 1 05:39:06 PST 2016
On Sun, Feb 28, 2016 at 02:46:12PM +0100, Petter Mabäcker wrote:
> 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() {
Merged to master.
--
Andrei Gherzan
More information about the yocto
mailing list