aboutsummaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorGravatar Peter Seiderer <ps.report@gmx.net>2015-01-03 21:01:47 +0100
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-01-10 15:25:31 +0100
commit9b2bbe3422d1e96eaf1e7f09743c325b48023ac2 (patch)
treed89935f4c784df651ecb83f43e488c390a311015 /linux
parentce36c35c420dc9bff7d7f62490e4eb1e47d1a9dd (diff)
downloadbuildroot-9b2bbe3422d1e96eaf1e7f09743c325b48023ac2.tar.gz
buildroot-9b2bbe3422d1e96eaf1e7f09743c325b48023ac2.tar.bz2
linux: add fbtft kernel extension
Tested with RaspberryPi B+ and PiTFT Mini Kit - 320x240 2.8" TFT (see [1] and [2]) and the following target configuration changes: - cmdline.txt: add 'fbcon=map:10 fbcon=font:VGA8x8' - add /etc/modules-load.d/fbtft.conf with 'fbtft_device' - add /etc/modprobe.d/00-fbtft.conf with 'options fbtft_device name=adafruit28 rotate=90 gpios=dc:25' [1] http://h65951.serverkompetenz.net/PeterSeiderer/upload/PiTFT_2_8_ct/Image9893.jpg [2] http://h65951.serverkompetenz.net/PeterSeiderer/upload/PiTFT_2_8_ct/Image9897.jpg [Thomas: - Rename prompt of the Linux extension to "FB TFT drivers" - Remove the full name of the kernel config options in the help text. Giving their CONFIG_<foo> name is enough. - Remove the mention of CONFIG_SPI_BCM2708, since this makes the description RaspberryPi specific, while these drivers can work with any SPI controller. - Refactor the code in linux-ext-fbtft.mk to avoid duplication between the < 3.15 and >= 3.15 cases. - Make the fbtft package a promptless package, since there is no point in selecting only this package, without the kernel extension. - Change the license to GPLv2, since it's kernel code.] Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'linux')
-rw-r--r--linux/Config.ext.in18
-rw-r--r--linux/linux-ext-fbtft.mk28
2 files changed, 46 insertions, 0 deletions
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