diff --git a/linux/Config.ext.in b/linux/Config.ext.in index 40c468424a..8f156874f0 100644 --- a/linux/Config.ext.in +++ b/linux/Config.ext.in @@ -42,4 +42,22 @@ config BR2_LINUX_KERNEL_EXT_RTAI_PATCH help Optionally, explicitly specify the RTAI patch to use. +# fbtft +config BR2_LINUX_KERNEL_EXT_FBTFT + bool "FB TFT drivers" + select BR2_PACKAGE_FBTFT + help + Linux Framebuffer drivers for small TFT LCD display modules, + e.g. Adafruit PiTFT displays for Raspberry Pi. + + To enable fbtft, e.g. for Adafruit 2.8 PiTFT, enable the + following kernel configurations: + - CONFIG_SPI + - CONFIG_GPIOLIB + - CONFIG_FB + - CONFIG_FB_TFT + - CONFIG_FB_TFT_ILI9341 + + https://github.com/notro/fbtft + endmenu diff --git a/linux/linux-ext-fbtft.mk b/linux/linux-ext-fbtft.mk new file mode 100644 index 0000000000..36f4fd22dd --- /dev/null +++ b/linux/linux-ext-fbtft.mk @@ -0,0 +1,28 @@ +################################################################################ +# Linux fbtft extensions +# +# Patch the linux kernel with fbtft extension +################################################################################ + +ifeq ($(BR2_LINUX_KERNEL_EXT_FBTFT),y) +# Add dependency to fbtft package (download helper for the fbtft source) +LINUX_DEPENDENCIES += fbtft + +# for linux >= 3.15 install to drivers/video/fbdev/fbtft +# for linux < 3.15 install to drivers/video/fbtft +define FBTFT_PREPARE_KERNEL + if [ -e $(LINUX_DIR)/drivers/video/fbdev ]; then \ + dest=$(LINUX_DIR)/drivers/video/fbdev ; \ + else \ + dest=$(LINUX_DIR)/drivers/video/ ; \ + fi ; \ + mkdir -p $${dest}/fbtft; \ + cp -dpfr $(FBTFT_DIR)/* $${dest}/fbtft/ ; \ + echo 'source "drivers/video/fbdev/fbtft/Kconfig"' \ + >> $${dest}/Kconfig ; \ + echo 'obj-y += fbtft/' >> $${dest}/Makefile +endef + +LINUX_PRE_PATCH_HOOKS += FBTFT_PREPARE_KERNEL + +endif #BR2_LINUX_KERNEL_EXT_FBTFT diff --git a/package/Config.in b/package/Config.in index 08fa31d267..878aa7242e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -313,6 +313,7 @@ endif source "package/evemu/Config.in" source "package/evtest/Config.in" source "package/fan-ctrl/Config.in" + source "package/fbtft/Config.in" source "package/fconfig/Config.in" source "package/fis/Config.in" source "package/flashrom/Config.in" diff --git a/package/fbtft/Config.in b/package/fbtft/Config.in new file mode 100644 index 0000000000..0a4de19091 --- /dev/null +++ b/package/fbtft/Config.in @@ -0,0 +1,13 @@ +# Prompt-less option, because this package is not doing anything +# except downloading the FB TFT sources. The real work is done by a +# Linux extension. +config BR2_PACKAGE_FBTFT + bool + depends on BR2_LINUX_KERNEL + help + Linux Framebuffer drivers for small TFT LCD display modules, + e.g. Adafruit PiTFT displays for Raspberry Pi. + + This is only the download helper for the kernel patch. + + https://github.com/notro/fbtft diff --git a/package/fbtft/fbtft.mk b/package/fbtft/fbtft.mk new file mode 100644 index 0000000000..913627dfc9 --- /dev/null +++ b/package/fbtft/fbtft.mk @@ -0,0 +1,11 @@ +################################################################################ +# +# fbtft +# +################################################################################ + +FBTFT_VERSION = 274035404701245e7491c0c6471c5b72ade4d491 +FBTFT_SITE = $(call github,notro,fbtft,$(FBTFT_VERSION)) +FBTFT_LICENSE = GPLv2 + +$(eval $(generic-package))