MDDI接口简单了解

 http://blog.csdn.net/gaomaolin_88_163/article/details/6682353

 

一:背景

高通MDP下面可以接三种屏的接口:LCDC,MDDI,EBI2.之前所接触的都是LCDC接口的,MDDI没有做过,也没有分析过。公司MDDI接口的屏也有,看了看MDDI接口的pin脚比LCDC少多了,很可能以后会经常用。在网上找了些资料,看了一下还是有点感觉。

二:资料

MDDI__Protocol_Introduction.pdf

MDDI_Introduce(ILItek).pdf

80-VM299-2 MSM7227-MSM7227-1 MOBILE STATION MODEM SOFTWARE INTERFACE.pdf

屏的spec

例子code.(这里最好看bootloader下面的代码比较精干)

有了这些东西那就自己看了。

三:

MDDI高通自己搞的一套屏的接口,既然是他搞出来的,那么它的操作方法他也在他所给的文档里说了。上面的MDDI__Protocol_Introduction.pdf看其名字就知道看了这个文档你肯定就知道了MDDI是如何工作的。再结合已有的例子代码,其具体的实现也就出现在眼前了。这里我自己也简单的总结一下:



看看上面的连线,其实最主要的就是MDDI Data+/-;MDDI Strobe+/-;TE。 所有的数据都是通过这个两对差分数据线来传输。

对于一块屏来说主要对其做两方面数据传输:
1.初始化序列。对屏进行一些设置,像其它LCDC的屏一般是通过SPI接口,而这里的MDDI接口里,则是由MDDI 主控制器来发。

在文档MDDI__Protocol_Introduction.pdf中描述的有一个packet,register access packet.在代码中用一个结构体来描述就是:

struct __attribute__((packed)) mddi_register_access

{

    unsigned short length;

    unsigned short type;

    unsigned short client_id;

    unsigned short rw_info;    /* flag below | count of reg_data */

#define MDDI_WRITE     (0 << 14)

#define MDDI_READ      (2 << 14)

#define MDDI_READ_RESP (3 << 14)

    unsigned reg_addr;

    unsigned short crc;        /* 16 bit crc of the above */

    unsigned reg_data;         /* "list" of 3byte data values */

};

它这个意思就是把你想要设置的寄储器的信息埴在这个结构体里面,然后再把这个结构体又填到另外一个结构体

struct __attribute__((packed)) mddi_llentry {

    unsigned short flags;

    unsigned short header_count;

    unsigned short data_count;

    void *data;

    mddi_llentry *next;

    unsigned short reserved;

    union {

        mddi_video_stream v;

        mddi_register_access r;

        unsigned _[12];

    } u;

};

把后面这个结构体的地址填到MDDI HOSTMDDI_PRI_PTR_REG寄储器里面,MDDI HOST就开始向屏发送你要设置的数据了。

2.图像数据的传输。

图像数据的传输和上面寄储器的传输是一样的,它又是另外一个结构体

struct __attribute__((packed)) mddi_video_stream 

{

    unsigned short length;      /* length in bytes excluding this field */

    unsigned short type;        /* MDDI_TYPE_VIDEO_STREAM */

    unsigned short client_id;   /* set to zero */

    

    unsigned short format;

    unsigned short pixattr;

    unsigned short left;

    unsigned short top;

    unsigned short right;

    unsigned short bottom;

    unsigned short start_x;

    unsigned short start_y;

    unsigned short pixels;

    unsigned short crc;

    unsigned short reserved;

};

差不多就这样,更具体还得看代码,目前还没有具体的项目用到这个MDDI的接口,先简单的了解一下,等到有MDDI接口的屏要调的时候,再作详细了解。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值