OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5547|回复: 2

关于imx6ull LCD驱动中的一些疑问

[复制链接]

5

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1820
金钱
1820
注册时间
2019-7-23
在线时间
281 小时
发表于 2021-3-26 09:35:52 | 显示全部楼层 |阅读模式
10金钱
1、当设备匹配成功后,struct of_device_id中的data直针有什么用?
          同一驱动代码,适应多个同类型的设备。但它们之间总是有一些差别,这些差别的数据就定义在of id match table的data中,当驱动匹配设备的时候,通过of_device_get_match_data()获取对应类型设备自身的数据。
2、host->devdata = &mxsfb_devdata[pdev->id_entry->driver_data];   我发现这个pdev->id_entry指针指向了mxsfb_devtype[1],但是在 mxsfb_probe(struct platform_device *pdev)和platform中的match()函数里并未发现相关赋值操作。我想知道他们是在那里赋值的。
其中相关数据如下,图片没弄好,就上传文字了。
static const struct platform_device_id mxsfb_devtype[] = {
        {
                .name = "imx23-fb",
                .driver_data = MXSFB_V3,
        }, {
                .name = "imx28-fb",
                .driver_data = MXSFB_V4,
        }, {
                /* sentinel */
        }
};
MODULE_DEVICE_TABLE(platform, mxsfb_devtype);

static const struct of_device_id mxsfb_dt_ids[] = {
        { .compatible = "fsl,imx23-lcdif", .data = &mxsfb_devtype[0], },
        { .compatible = "fsl,imx28-lcdif", .data = &mxsfb_devtype[1], },
        { /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, mxsfb_dt_ids);


static struct platform_driver mxsfb_driver = {
        .probe = mxsfb_probe,
        .remove = mxsfb_remove,
        .shutdown = mxsfb_shutdown,
        .id_table = mxsfb_devtype,
        .driver = {
                   .name = DRIVER_NAME,
                   .of_match_table = mxsfb_dt_ids,
        },
};

具体请参考 /drivers/video/fbdev/mxsfb.c

享受技术
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1820
金钱
1820
注册时间
2019-7-23
在线时间
281 小时
 楼主| 发表于 2021-3-26 09:36:43 | 显示全部楼层
第一个问题,被群里的一位大佬解答了,所以也就分享出来了。
回复

使用道具 举报

5

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1820
金钱
1820
注册时间
2019-7-23
在线时间
281 小时
 楼主| 发表于 2021-3-26 09:48:46 | 显示全部楼层
probe中一开始就进行赋值了       
const struct of_device_id *of_id =
                        of_match_device(mxsfb_dt_ids, &pdev->dev);

        if (of_id)
                pdev->id_entry = of_id->data;
享受技术
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表