Firefly开源社区

打印 上一主题 下一主题

[Android] Mipi 如何配置 Command mode 和 video mode

29

积分

0

威望

0

贡献

技术小白

积分
29

Mipi 如何配置 Command mode 和 video mode

发表于 2022-2-15 17:26:56      浏览:5250 | 回复:4        打印      只看该作者   [复制链接] 楼主
目前手上有一个屏需要用 mipi 的 command 模式显示,系统源码该如何配置或修改?
同时在发送图像数据包结束后,需要发送控制命令该如何修改。

求大神指教!!!!
回复

使用道具 举报

发表于 2022-2-15 18:01:21        只看该作者  沙发
先联系所调试屏的FAE获取技术支持。
回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
发表于 2022-2-16 09:46:34        只看该作者  板凳
firefly_zhongw 发表于 2022-2-15 18:01
先联系所调试屏的FAE获取技术支持。

我问的这部分和屏没多少关系,这是系统设置的显示模式,因为看到官方给出的资料支持这种操作;我们准备自己做一款屏幕,但屏幕的刷新率要求不是很高,需要 Command mode ;但我不知道源码中怎么修改,求指教
回复

使用道具 举报

发表于 2022-2-16 16:20:42        只看该作者  地板
本帖最后由 firefly_zhongw 于 2022-2-16 16:23 编辑

1. 如果mipi屏需要发初始化指令的,可以参考 kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-aioj-mipi101_M101014_BE45_A1.dts 里的
panel-init-sequence属性
2. 调试屏可以参考RKDocs/common/display/目录下的文档
回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
发表于 2022-2-16 18:11:53        只看该作者  5#
firefly_zhongw 发表于 2022-2-16 16:20
1. 如果mipi屏需要发初始化指令的,可以参考 kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-aioj-mi ...

我做过实验在显示过程中将mipi接口模式改变然后发送命令再将模式还原是可行的,但是发送命令的数据大小不能大于10字节;我现在的问题是怎么才能在这个过程中发送一个大于10字节的数据包(比如img数据包)(因为我们自己做的屏有些特殊需要这样操作)

这是我自己写的代码

static int panel_send_cmd(struct drm_panel *panel, u8 *data)
{
        struct panel_simple *p = to_panel_simple(panel);
        struct device *dev = p->base.dev;
        struct mipi_dsi_device *dsi = p->dsi;
        int err;
        int ret;
       
        printk("panel_send_cmd \n");

        dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
        err = mipi_dsi_dcs_set_display_off(dsi);
        err = mipi_dsi_dcs_enter_sleep_mode(dsi);

        dsi->mode_flags |= MIPI_DSI_MODE_LPM;
        err = mipi_dsi_dcs_exit_sleep_mode(dsi);
        msleep(125);
       
        ret = mipi_dsi_generic_write(dsi, data, strlen(data));
        if (ret < 0) {
                printk("failed to send data: %d\n", ret);
                return ret;
        }
        mdelay(100);

        err = mipi_dsi_dcs_set_display_on(dsi);       
        msleep(20);
       
        printk("panel_send_cmd : mipi_dsi_generic_write ret = %d \n", ret);
       
        p->prepared = true;

        return 0;
}


依据:RKDocs\common\display\Rockchip_Developer_Guide_DRM_Panel_Porting_CN&EN.pdf 修改


求教有没有什么办法可以解决这个问题。




回复

使用道具 举报

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

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表