03.lcm数据传输

在读/写指令时,Generic指令 是不区分 Index 和 parameter 的,而 DCS 会默认把 data0 作为Index 然后计算 parameter 数目。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

/* dcs read/write */
#define DTYPE_DCS_WRITE     0x05    /* short write, 0 parameter */
#define DTYPE_DCS_WRITE1    0x15    /* short write, 1 parameter */
#define DTYPE_DCS_LWRITE    0x39    /* long write/write LUT command packet */
#define DTYPE_DCS_READ      0x06    /* read, 0 parameter */

/* generic read/write */
#define DTYPE_GEN_WRITE     0x03    /* short write, 0 parameter */
#define DTYPE_GEN_WRITE1    0x13    /* short write, 1 parameter */
#define DTYPE_GEN_WRITE2    0x23    /* short write, 2 parameters */
#define DTYPE_GEN_LWRITE    0x29    /* long write */
#define DTYPE_GEN_READ      0x04    /* long read, 0 parameter */
#define DTYPE_GEN_READ1     0x14    /* long read, 1 parameter */
#define DTYPE_GEN_READ2     0x24    /* long read, 2 parameters */

#define DTYPE_TEAR_ON       0x35    /* set tear on */
#define DTYPE_MAX_PKTSIZE   0x37    /* set max packet size */
#define DTYPE_NULL_PKT      0x09    /* null packet, no data */
#define DTYPE_BLANK_PKT     0x19    /* blanking packet, no data */

#define DTYPE_CM_ON         0x02    /* color mode off */
#define DTYPE_CM_OFF        0x12    /* color mode on */
#define DTYPE_PERIPHERAL_OFF    0x22
#define DTYPE_PERIPHERAL_ON     0x32

/* Video mode */
0x0E    /* Packed Pixel Stream, 16-bit RGB, 5-6-5 Format */
0x1E    /* Packed Pixel Stream, 18-bit RGB, 6-6-6 Format */
0x2E    /* Loosely Packed Pixel Stream, 16-bit RGB, 5-6-5 Format */
0x3E    /* Packed Pixel Stream, 24-bit RGB, 8-8-8 Format */

0xx0h and 0xxFh /*DO NOT USE, All unspecified codes are reserved */

static LCM_UTIL_FUNCS lcm_util;

#define dsi_set_cmdq_V2(cmd, count, ppara, force_update) lcm_util.dsi_set_cmdq_V2(cmd, count, ppara, force_update)

#define dsi_set_cmdq(pdata, queue_size, force_update)         lcm_util.dsi_set_cmdq(pdata, queue_size, force_update)

static void lcm_set_util_funcs(const struct LCM_UTIL_FUNCS *util)

{

        memcpy(&lcm_util, util, sizeof(struct LCM_UTIL_FUNCS));

}

struct LCM_DRIVER bn080hd182a_mipi_drv =

{

        .name                        = "BN080HD182A_MIPI",

        .set_util_funcs = lcm_set_util_funcs,

        .get_params     = lcm_get_params,

        .init           = lcm_init,

        .suspend        = lcm_suspend,

        .resume         = lcm_resume,

        .init_power                = lcm_init_power,

        .resume_power         = lcm_resume_power,

        //.suspend_power         = lcm_suspend_power,

        //.compare_id         = lcm_compare_id,

};

static void push_table(struct LCM_setting_table *table, unsigned int count, unsigned char force_update)

{

        unsigned int i;

        unsigned cmd;

        for (i = 0; i < count; i++) {

                cmd = table[i].cmd;

                switch (cmd) {

                case REGFLAG_DELAY:

                        MDELAY(table[i].count);

                        break;

                case REGFLAG_END_OF_TABLE:

                        break;

                default:

                        dsi_set_cmdq_V2(cmd, table[i].count, table[i].para_list, force_update);

                }

        }

}

#endif

        unsigned int data_array[16];

        data_array[0] = 0x014F1500;

        dsi_set_cmdq(data_array, 1, 1);

        MDELAY(40);

        data_array[0]=0x00053902;

        data_array[1]=0x100206BF;

        data_array[2]=0x00000004;

        dsi_set_cmdq(data_array,3,1);

-------------------------------------------

        //SLP IN

        data_array[0] = 0x00100500;

        dsi_set_cmdq(data_array, 1, 1);

        MDELAY(120);

        //DISP OFF

        data_array[0] = 0x00280500;

        dsi_set_cmdq(data_array, 1, 1);

        MDELAY(10);

-------------------------------------------

        //SLP OUT

        data_array[0]=0x00110500;

        dsi_set_cmdq(data_array,1,1);

        MDELAY(200);

        //DISP ON

        data_array[0]=0x00290500;

        dsi_set_cmdq(data_array,1,1);

        MDELAY(5);

        //--- TE----//

        //data_array[0]=0x00350500;

        //dsi_set_cmdq(data_array,1,1);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值