目前手上有一个屏需要用 mipi 的 command 模式显示,系统源码该如何配置或修改?
同时在发送图像数据包结束后,需要发送控制命令该如何修改。
求大神指教!!!!
目前手上有一个屏需要用 mipi 的 command 模式显示,系统源码该如何配置或修改?
同时在发送图像数据包结束后,需要发送控制命令该如何修改。
求大神指教!!!!
先联系所调试屏的FAE获取技术支持。
firefly_zhongw 发表于 2022-2-15 18:01
先联系所调试屏的FAE获取技术支持。
我问的这部分和屏没多少关系,这是系统设置的显示模式,因为看到官方给出的资料支持这种操作;我们准备自己做一款屏幕,但屏幕的刷新率要求不是很高,需要 Command mode ;但我不知道源码中怎么修改,求指教
本帖最后由 firefly_zhongw 于 2022-2-16 16:23 编辑
firefly_zhongw 发表于 2022-2-16 16:20
- 如果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 修改
求教有没有什么办法可以解决这个问题。