Пример #1
0
static int mddi_tpo_nv_seq_init(void)
{
    if (plat_disp_type)
    {
        if (plat_disp_type == TPO_PLAT_DISP)
        {
            printk("%s: Found TPO Platform Display\n", __FUNCTION__);
            disp_init = tpo_nv_plat_init;
        }
        else if (plat_disp_type == TMD_PLAT_DISP)
        {
            printk("%s: Found TMD Platform Display\n", __FUNCTION__);
            disp_init = tmd_nv_plat_init;
        }
        disp_uninit = tpo_nv_plat_uninit;
        disp_esd_recovery = tpo_nv_plat_esd_recovery;
    }
    else
    {
        unsigned userid = 0;
        unsigned revision = 0;

        mddi_queue_register_read(USERID, &userid, TRUE, 0);
        mddi_queue_register_read(REVISIONID, &revision, TRUE, 0);

        switch(userid)
        {
        case TPO_NV_VER_F_USERID:
            printk("%s: Found TPO vF Display\n", __FUNCTION__);
            disp_init = tpo_nv_version_F_init;
            break;
#ifdef CONFIG_MACH_MOT
        case TPO_NV_VER_G_USERID:
            printk("%s: Found TPO vG Display\n", __FUNCTION__);
            disp_init = tpo_nv_version_G_init;
            break;
#endif
        default:
            printk("%s: Found TPO vE Display\n", __FUNCTION__);
            disp_init = tpo_nv_version_E_init;
            break;
        }
        disp_uninit = tpo_nv_uninit_defines;
    }
    if (!disp_init)
    {
        return -EINVAL;
    }
    return 0;
}
Пример #2
0
static ssize_t nov_t2_show(struct device *dev, struct device_attribute *attr,
                       char *buf)
{
	struct msm_mddi_client_data *client_data = dev->platform_data;
	int ret;
	unsigned val;
	unsigned v1,v2;

	mddi_queue_register_read(0xb101, &v1, 0, 0);
	mddi_queue_register_read(0xb102, &v2, 0, 0);

	val=(v2 << 8) | v1;

	ret = sprintf(buf, "T2: d%u, 0x%04xh\n", val, val);

	return ret;
}
Пример #3
0
void bkl_read_reg(unsigned int addr, unsigned int *data)
{
  static unsigned int val;  
  
  mddi_queue_register_read(addr, &val, FALSE, 0);
  msleep(10);
  *data = val;
  MSG("Read 0x%04X = 0x%04X",addr,val);
}
Пример #4
0
static ssize_t nov_data_show(struct device *dev, struct device_attribute *attr,
                       char *buf)
{
	struct msm_mddi_client_data *client_data = dev->platform_data;
	int ret;
	unsigned val;

	mddi_queue_register_read(addr, &val, 0, 0);

	ret = sprintf(buf, "%x: d%u, 0x%02xh\n", addr, val, val);

	return ret;
}
Пример #5
0
static int __init mddi_nt35560_probe(struct platform_device *pdev)
{
	uint32 id = 0;

	msm_fb_add_device(pdev);

	mddi_queue_register_read(0x1F80, &id, TRUE, 0);
	printk(KERN_INFO "%s user id: 0x%x\n", __func__,id);

	//Turn on Vsync on 700th line
	mddi_queue_register_write(0x4400, 0x02, FALSE, 0);
	mddi_queue_register_write(0x4401, 0xBC, FALSE, 0);
	mddi_queue_register_write(0x3500, 0x00, FALSE, 0);


	return 0;
}
Пример #6
0
static void mddi_tpo_nv_esd_poll(void* arg)
{
#ifdef MDDI_TPO_NV_ESD_DEBUG
    uint32_t val;
#endif
    struct platform_device *pdev = (struct platform_device *)arg;

    msm_fb_down(pdev);
#ifdef MDDI_TPO_NV_ESD_DEBUG
    printk(KERN_ERR "TPO NV - ESD register check START\n");
    mddi_queue_register_write(ENTRYMODE2 ,0x00C4, 0, 0);
    mddi_wait(20);
    for (i = 0;; i++)
    {
        if (disp_init[i].reg == TABLE_END)
        {
            break;
        }
        else if (disp_init[i].reg != MDDI_SLEEP_CMD)
        {
            mddi_queue_register_read(disp_init[i].reg, &val, 1, 0);
            if (disp_init[i].val != val)
            {
                printk(KERN_ERR "TPO NV reg 0x%X should be 0x%X, found 0x%X\n",
                       disp_init[i].reg, disp_init[i].val, val);
            }
        }
    }
    mddi_queue_register_write(ENTRYMODE2 ,0x00C5, 0, 0);
    mddi_wait(30);
    printk(KERN_ERR "TPO NV - ESD register check END\n");
#endif /* MDDI_TPO_NV_ESD_DEBUG */
    if (disp_esd_recovery)
    {
        xmit_panel_seq(disp_esd_recovery);
    }
    msm_fb_up(pdev);
}