Firefly开源社区

标题: Mipi 如何配置 Command mode 和 video mode [打印本页]

作者: 菜鸟一号    时间: 2022-2-15 17:26
标题: Mipi 如何配置 Command mode 和 video mode
目前手上有一个屏需要用 mipi 的 command 模式显示,系统源码该如何配置或修改?
同时在发送图像数据包结束后,需要发送控制命令该如何修改。

求大神指教!!!!
作者: firefly_zhongw    时间: 2022-2-15 18:01
先联系所调试屏的FAE获取技术支持。
作者: 菜鸟一号    时间: 2022-2-16 09:46
firefly_zhongw 发表于 2022-2-15 18:01
先联系所调试屏的FAE获取技术支持。

我问的这部分和屏没多少关系,这是系统设置的显示模式,因为看到官方给出的资料支持这种操作;我们准备自己做一款屏幕,但屏幕的刷新率要求不是很高,需要 Command mode ;但我不知道源码中怎么修改,求指教
作者: firefly_zhongw    时间: 2022-2-16 16:20
本帖最后由 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/目录下的文档
作者: 菜鸟一号    时间: 2022-2-16 18:11
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 修改


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









欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1