notro / fbtft

Linux Framebuffer drivers for small TFT LCD display modules. Development has moved to https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/tree/drivers/staging/fbtft?h=staging-testing
1.85k stars 496 forks source link

ILI9341 based display on AM335x #456

Closed shrikant97 closed 3 years ago

shrikant97 commented 7 years ago

Hello Notro, I am trying to bring up the ILI9341 based LCD on AM335x based custom board. The interface used is System-80 interface using GPIO's only. Also I modified the device tree file and fb_ili9341.c driver to configure proper GPIO'S.

I compiled the FBTFT drivers and loaded the modules using below commands: $insmod fbtft_device.ko name=itdb28 $insmod flexfb.ko $insmod fb_ili9341.ko But after these commands I am getting below errors in dmesg output [ 45.355693] fbtft_device: SPI devices registered: [ 45.361138] fbtft_device: spidev spi1.0 48000kHz 8 bits mode=0x00 [ 45.368175] fbtft_device: 'fb' Platform devices registered: [ 45.374520] fbtft_device: spi_busnum_to_master(0) returned NULL [ 45.380973] fbtft_device: failed to register SPI device [ 85.920866] fbtft_device: SPI devices registered: [ 85.926039] fbtft_device: spidev spi1.0 48000kHz 8 bits mode=0x00 [ 85.933223] fbtft_device: 'fb' Platform devices registered: [ 85.955527] fbtft_device: GPIOS used by 'itdb28': [ 85.960973] fbtft_device: (none) [ 85.964700] fbtft_device: 'fb' Platform devices registered: [ 85.971065] fbtft_device: fb_ili9341 id=0 pdata? yes [ 105.711019] fbtft_of_value: buswidth = 8 [ 105.715247] fbtft_of_value: debug = 2 [ 105.719417] fbtft_of_value: rotate = 0 [ 105.742927] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'dc-gpios' = GPIO78 [ 105.753619] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'rd-gpios' = GPIO81 [ 105.763773] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'wr-gpios' = GPIO79 [ 105.774041] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'cs-gpios' = GPIO80 [ 105.784011] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO70 [ 105.793963] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO71 [ 105.804237] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO72 [ 105.814261] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO73 [ 105.824227] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO74 [ 105.834164] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO75 [ 105.844071] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO76 [ 105.853974] fb_ili9341 itdb28.9: fbtft_request_one_gpio: 'db-gpios' = GPIO77 [ 106.600206] fb_ili9341 itdb28.9: Display update: 244 kB/s (612.796 ms), fps=0 (0.000 ms) [ 106.625594] Console: switching to colour frame buffer device 30x40 [ 106.633318] graphics fb0: fb_ili9341 frame buffer, 240x320, 150 KiB video memory, 16 KiB DMA buffer memory, fps=20 [ 106.658990] fb_ili9341 fb_ili9341.0: fbtft_probe_common() [ 106.665011] fb_ili9341 fb_ili9341.0: Missing info about 'dc' gpio. Aborting. [ 106.675114] fb_ili9341 itdb28.9: fbtft_update_display: start_line=0 or end_line=4294967295 is larger than max=319. Shouldn't happee [ 106.967724] fb_ili9341: probe of fb_ili9341.0 failed with error -22

Kindly guide me to solve this issue. Best Regards, Shrikant

notro commented 7 years ago

The output is confusing, it seems you are adding two devices: itdb28.9 and fb_ili9341.0

tajudheenk commented 4 years ago

Try using fbtft drivers from kernel v5.0. They worked for me. You will find it here https://github.com/torvalds/linux/tree/v5.0/drivers/staging/fbtft

Here is my dts entry for ssd1351

&spi1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_spi1_default>;

        lcd@0{
                compatible = "solomon,ssd1351";
                status = "okay";
                spi-max-frequency = <5000000>;
                width = <128>;
                height = <128>;
                fps = <20>;
                reg = <0>;
                bgr;
                regwidth = <0x8>;
                buswidth = <8>;
                backlight = <2>;
                debug = <3>;
                reset-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
                dc-gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
        };
};
github-actions[bot] commented 3 years ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.