MasterOfGizmo hat geschrieben:Cool ... ich probier's asap aus ....
Edit: Hmm, auf den ersten Blick keine Änderung.
Hallo MasterOfGizmo und richard.kunze,
ich bin bo911 und neu hier im Forum .... Ich finde Euren Ansatz sehr sinnvoll, und habe eigentlich das gleiche schon versucht bzw. auch umgesetzt.
Aktuell läuft bei mir ein linux-4.4.2-rt5 aber ausgehend von Robert Nelsons BBB Kernel (BBB = BeagleBoneBlack)
Es läuft: WLAN, Sound, USB0 Netzwerk, Display, und die FT - Applikation, da ich analog zu MasterOfGizmo eben auch die Laufzeitumgebung
entsprechend erst einmal nicht geändert habe ... Mein Ziel Debian jessie z.b via lxc als gleichzeitiges OS laufen zu lassen, damit ich via Net die
aktuelle Applikation für die I/O nutzen kann. (Wenn FT die einmal zum compilieren anböte, würde ich die FT - Umgebung löschen ...)
Die RT-Version erzeugt bei mir leider z.T hohe CPU - Last, ich denke, das ist in weiteren RT-Patches behoben .....
Ich denke, ich kann Euch sicher bei den logisch nächsten Schritte deutlich helfen, finde aber das Forum zur Übermittlung all der Details als eher nicht
wirklich effektiv, das hier genannte git - Repo kann ich irgendwie nicht erreichen ?? Gibt es eine Möglichkeit hier zeitnah z.b via Skype / Tel einmal
abzustimmen ??
Okay wenn ich das richtig im Kopf habe, müsst Ihr folgende Dinge tun:
1.) DTS - File anpassen an die neue Struktur(en)
2.) Patch der Datei KERNEL/drivers/net/wireless/ti/wlcore/sdio.c 2016-02-25 19:34:17.000000000 +0100
Code: Alles auswählen
--- KERNEL/drivers/net/wireless/ti/wlcore/sdio.c 2016-02-25 19:34:17.000000000 +0100
+++ ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/net/wireless/ti/wlcore/sdio.c 2016-02-23 19:25:36.000000000 +0100
@@ -235,6 +235,10 @@
{
struct device_node *np = dev->of_node;
+ if (!np)
+ np = of_find_matching_node(NULL, wlcore_sdio_of_match_table);
+
+
if (!np || !of_match_node(wlcore_sdio_of_match_table, np))
return -ENODATA;
@@ -293,8 +297,7 @@
/* Use block mode for transferring over one block size of data */
func->card->quirks |= MMC_QUIRK_BLKSZ_FOR_BYTE_MODE;
- ret = wlcore_probe_of(&func->dev, &irq, &pdev_data);
- if (ret)
+ if (wlcore_probe_of(&func->dev, &irq, &pdev_data))
goto out_free_glue;
/* if sdio can keep power while host is suspended, enable wow */
3.) Display: Datei fb_ili9341:txt.c aus den Quellen in das Verzeichnis kopieren und folgende patches anwenden...
Hintergrund: Das FT-Display ist wohl ähnlich dem fb_ili9341, aber wird via sdio parallel anstatt via spi angesteuert =>
ein neues Display ist den Kernel - Sourcen hinzu zu fügen ....
Code: Alles auswählen
diff -ur KERNEL/drivers/staging/fbtft/fbtft_device.c ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/fbtft_device.c
--- KERNEL/drivers/staging/fbtft/fbtft_device.c 2016-02-25 19:34:25.000000000 +0100
+++ ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/fbtft_device.c 2016-02-23 20:37:13.000000000 +0100
@@ -1189,6 +1189,52 @@
}
}
}, {
+ .name = "txt_ili9341",
+ .pdev = &(struct platform_device) {
+ .name = "fb_ili9341_txt",
+ .id = 0,
+ .dev = {
+ .release = fbtft_device_pdev_release,
+ .platform_data = &(struct fbtft_platform_data) {
+ .display = {
+ .pLcdBase = 0x4830E000,
+ .pLcdCmd = 0x14,
+ .pLcdData= 0x18,
+
+ .buswidth = 16,
+ .txbuflen = -1, /* buffer like display */
+ .backlight = 1,
+ },
+ .gpios = (const struct fbtft_gpio []) {
+
+ /* { "reset", 18 },
+ { "dc", 86 },
+ { "wr", 87 },
+ { "cs", 89 },
+ { "db00", 70 },
+ { "db01", 71 },
+ { "db02", 72 },
+ { "db03", 73 },
+ { "db04", 74 },
+ { "db05", 75 },
+ { "db06", 76 },
+ { "db07", 77 },
+ { "db08", 78 },
+ { "db09", 79 },
+ { "db10", 80 },
+ { "db11", 81 },
+ { "db12", 8 },
+ { "db13", 9 },
+ { "db14", 10 },
+ { "db15", 11 },*/
+
+ { "led", 7 },
+ {},
+ },
+ },
+ },
+ }
+ }, {
/* This should be the last item.
Used with the custom argument */
.name = "",
Sowie:
Code: Alles auswählen
diff -ur KERNEL/drivers/staging/fbtft/fbtft.h ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/fbtft.h
--- KERNEL/drivers/staging/fbtft/fbtft.h 2016-02-25 19:34:25.000000000 +0100
+++ ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/fbtft.h 2016-02-23 20:29:15.000000000 +0100
@@ -137,6 +137,9 @@
int gamma_num;
int gamma_len;
unsigned long debug;
+ unsigned long pLcdBase;
+ unsigned long pLcdCmd;
+ unsigned long pLcdData;
};
/**
Sowie
Code: Alles auswählen
diff -ur KERNEL/drivers/staging/fbtft/Kconfig ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/Kconfig
--- KERNEL/drivers/staging/fbtft/Kconfig 2016-02-25 19:34:25.000000000 +0100
+++ ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/Kconfig 2016-02-23 20:16:30.000000000 +0100
@@ -75,6 +75,12 @@
help
Generic Framebuffer support for ILI9341
+config FB_TFT_ILI9341_TXT
+ tristate "FB driver for the ILI9341 LCD Controller for TXT"
+ depends on FB_TFT
+ help
+ Generic Framebuffer support for ILI9341 on Knobloch TXT
+
config FB_TFT_ILI9481
tristate "FB driver for the ILI9481 LCD Controller"
depends on FB_TFT
Das Makefile muß auch angepasst werden:
Code: Alles auswählen
diff -ur KERNEL/drivers/staging/fbtft/Makefile ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/Makefile
--- KERNEL/drivers/staging/fbtft/Makefile 2016-02-25 19:34:25.000000000 +0100
+++ ../bb-kernel-4.4.2-rt-bone5/KERNEL/drivers/staging/fbtft/Makefile 2016-02-23 20:17:05.000000000 +0100
@@ -14,6 +14,7 @@
obj-$(CONFIG_FB_TFT_ILI9325) += fb_ili9325.o
obj-$(CONFIG_FB_TFT_ILI9340) += fb_ili9340.o
obj-$(CONFIG_FB_TFT_ILI9341) += fb_ili9341.o
+obj-$(CONFIG_FB_TFT_ILI9341_TXT) += fb_ili9341_txt.o
obj-$(CONFIG_FB_TFT_ILI9481) += fb_ili9481.o
obj-$(CONFIG_FB_TFT_ILI9486) += fb_ili9486.o
obj-$(CONFIG_FB_TFT_PCD8544) += fb_pcd8544.o
Insgesamt sind also diverse Anpassungen vorzunehmen, das das Display als fb0 - Device entsprechend verfügbar wird ...
Bei waren auch die Input - devices verschoben, so dass im FT-Filesystem nicht event0 als Device sonder event1 zu nehmen war
(sonst geht die Touchfunktion nicht)
4.) Es ändern sich die Bezeichnungen der seriellen Schnittstellen von ttyOX => ttySx, welche in der dts - Datei + FT - Filesystem /opt/knobloch
entsprechend modifiziert werden müssen.
5.) Der wl1835 WLAN / Bluetooth Kombichip muß mit Ti - mittel wlconf entsprechend angepasst werden, bei mir ging es erst, wenn ich die
/lib/firmware - Files geändert habe, und die config gelöscht habe (=> default setup wird genommen ...)
Es gibt noch weitere Umstellungen, die hier erst einmal nicht in dem ersten Beitrag alle auswälzen kann, ich denke, irgendwie muss da eine
effektivere Form des Austausches her, weil cut & copy paste mittels Maus natürlich auch Fehlerbehaftet ist ..
Obige Patches habe ich im linux-4.4.2 angewandt, diese sollten aber mit ein wenig Vergleich auch so im 4.1.18 Ti-Kernel anwendbar sein.
Have fun