[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