Linux 下 LCD 屏CPU接口驱动方法

Linux 下 LCD 屏CPU接口驱动方法

这个资料不好找!刚开个头,不断尝试中,耐心等待。

https://github.com/notro/fbtft/wiki/fbtft_device

上面这个地方基本上解决了我的问题,只是需要理解它。
我的Lcd是240 X 320的,8080接口, 16bit 数据位,RGB 565模式。驱动芯片是ST7789V,如果用SPI接口方式,或许方便一些,但是这里要用8080的CPU并行接口,除了16条数据线,还要接reset、cs、dc、wr、rd、led这些引脚。

1、新增 LCD 屏的设备定义

编辑 /linux/drivers/staging/fbtft/fbtft_device.c文件,增加对目标lcd的驱动定义。参考已有的代码,新增一个lcd定义,原有的长这样

{
                .name = "itdb24",
                .pdev = &(struct platform_device) {
                        .name = "fb_s6d1121",
                        .id = 0,
                        .dev = {
                        .release = fbtft_device_pdev_release,
                        .platform_data = &(struct fbtft_platform_data) {
                                .display = {
                                        .buswidth = 8,
                                        .backlight = 1,
                                },
                                .bgr = false,
                                .gpios = (const struct fbtft_gpio []) {
                                        /* Wiring for LCD adapter kit */
                                        { "reset", 7 },
                                        { "dc", 0 },    /* rev 2: 2 */
                                        { "wr", 1 },    /* rev 2: 3 */
                                        { "cs", 8 },
                                        { "db00", 17 },
                                        { "db01", 18 },
                                        { "db02", 21 }, /* rev 2: 27 */
                                        { "db03", 22 },
                                        { "db04", 23 },
                                        { "db05", 24 },
                                        { "db06", 25 },
                                        { "db07", 4 },
                                        {}
                                },
                        },
                        }
                }
        }, 

一些细节参数还没搞明白,新增加的大概这样

{
                .name = "xcre24", /*我的2.4“ TFT , 240 X 320 彩屏,定义一个名字*/
                .pdev = &(struct platform_device) {
                        .name = "fb_st7789v", 
                        /*这个名字是驱动的name,#define DRVNAME "fb_st7789v",必须已经存在*/
                        /*也就是说linux已经有支持这个设备,或者你自己写好驱动了*/
                       /*屏幕参数已经在fb_st7789v.C中定义好了*/
                        .id = 0,
                        .dev = {
                        .release = fbtft_device_pdev_release,
                        .platform_data = &(struct fbtft_platform_data) {
                                .display = {
                                        .buswidth = 16, /*数据位宽度*/
                                        .backlight = 1,
                                },
                                .bgr = false,
                                .gpios = (const struct fbtft_gpio []) {
                                        /* Wiring for LCD adapter kit */
                                        /* 这里根据实际电路图修改 */
                                        { "reset", 7 },
                                        { "dc", 0 },    /* rev 2: 2 */
                                        { "wr", 1 },    /* rev 2: 3 */
                                        { "cs", 8 },
                                        { "db00", 17 },
                                        { "db01", 18 },
                                        { "db02", 21 }, /* rev 2: 27 */
                                        { "db03", 22 },
                                        { "db04", 23 },
                                        { "db05", 24 },
                                        { "db06", 25 },
                                        { "db07", 4 },
                                        {}
                                },
                        },
                        }
                }
        }, 

2 、下一步?

还不知道怎么弄

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值